所以,假设我有这样的东西:
template <class T>
class SingletonHolder : public T
{
public:
static SingletonHolder<T>& getInstance()
{
static SingletonHolder<T> instance;
return instance;
}
private:
SingletonHolder()
{
}
virtual ~SingletonHolder()
{
}
};//class SingletonHolder
然后说我有一些伪类:
class SomeClassForCheck
{
public:
int someF()
{
return 5;
}
};
然后是singleton的用法:
typedef SingletonHolder< SomeClassForCheck > SomeClassSingleton;
然后,当我从SomeClasse的CPP文件(在任何函数之外)调用此代码时:[背后的想法是基本上使用这个技巧将创建者函数注册到Singleton Factory类]
//该代码是从.CPP文件中的匿名命名空间调用的SomeClassSingleton::getInstance().someF();
Visual C++尖叫错误:
该声明没有存储类或类型说明符
此代码在GCC和C++Builder下工作。到目前为止,我还没有使用过Visual C++,那么我做错了什么:)?
谢谢!独山
是的,正如@The Dark所说,
在函数调用前面添加声明:
//换句话说:bool-success=:)
bool success=FileIndexerFactory::getInstance().registerNew(MP3_INDEXER,mp3IndexerCreator);
工作时间:)
这就是我在凌晨4:38从编码中得到的:)