我正在阅读《 Game Coding Complete》这本书,它基本上是关于游戏引擎的概念的。
关于资源缓存的部分有一些我不太了解的代码。
extern shared_ptr<IResourceLoader> CreateWAVResourceLoader();
CreateWAVResourceLoader()看起来像
shared_ptr<IResourceLoader> CreateWAVResourceLoader()
{
return shared_ptr<IResourceLoader>(GCC_NEW WaveResourceLoader());
}
然后作者注册wave资源加载器
m_ResCache->RegisterLoader(CreateWAVResourceLoader());
对我来说,行
extern shared_ptr<IResourceLoader> CreateWAVResourceLoader();
有点令人困惑,因为我正在调用返回shared_ptr的函数,但是如何使用没有名称的指针呢?我很确定这是我缺乏C ++的经验,所以请启发我。 :)谢谢!
最佳答案
该行是函数声明。它名为CreateWAVResourceLoader
,没有参数,并返回shared_ptr<IResourceLoader>
。
当你说:
m_ResCache->RegisterLoader(CreateWAVResourceLoader());
就是那个时候。它将函数返回的临时共享指针传递给
RegisterLoader
。关于c++ - 使用不带名称的shared_ptr吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15854705/