我需要一个单例类指向我的主类的指针。单例类头包含在主类中。

在MainClass.cpp中

mSingletonInstance->mMainClass = this;


为了避免递归包含问题,我不在单例类中不包含主类标头,而只是使用主类的前向声明。

在Singleton.h中:

class MainClass;

class Singleton {
    public:
       MainClass *mMainClass;
};


当我尝试从主类访问方法时,问题就来了……我收到一个不完整的类型错误。

在Singleton.cpp中

Singleton::myMethod(){
    mMainClass->someMethod(); // incomplete type error
}


发生这种情况时,已经定义了MainClass和Singleton ...

最佳答案

似乎您没有在singleton.cpp中包含mainclass.h。

关于c++ - 单例中的不完整类型错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9388862/

10-09 06:23