我有一个Qt类,它看起来是这样的:如何在静态方法中实例化当前类的实例?
class MyClass : public QObject
{
Q_OBJECT
public:
virtual void doSomething();
static void createInstance();
};
的createInstance
方法应该创建当前类的实例,并调用doSomething
方法就可以了。例如,如果我创建了一个名为MyOtherClass
派生类,createInstance
应该创建的MyOtherClass
一个实例,并且该实例调用doSomething
。
起初我以为模板可能是这里的解决方案,但下面的代码:
template <typename T>
static void createInstance();
// ...in myclass.cpp...
template <typename T>
void MyClass::createInstance()
{
T().doSomething();
}
...生成以下链接错误:
error: undefined reference to `void MyClass::createInstance<MyOtherClass>()'
This answer可能除了moc
没有按工作过不适用于模板类。我有什么选择?
非常有趣的想法。谢谢! –