我有一个C ++类,ClassA。我想在ClassA中定义ClassB,然后定义ClassB类型的ClassA属性。
我有另一个类,ClassC,它包含ClassA类型的指针变量。如果我尝试将此指针指向ClassA的实例,则应用程序崩溃。但是,如果我删除属性m_classB,一切正常。所以关于ClassC实例指向包含ClassB的ClassA实例的一些事情导致它崩溃,但是不包含ClassB的ClassA很好......如果这是有道理的。
我的代码如下:
class __declspec(dllexport) ClassA
{
public:
class ClassB {
public:
int m_nID;
CString m_string;
ClassB() :
m_nID(-1),
m_string(_T(""))
{
}
};
ClassB m_classB; // If i comment this out, then the application loads no problem
};
奇怪的是,如果我将ClassB m_classB;
替换为vector<ClassB> m_vclassB;
,一切正常。
如果我使用ClassB* m_classB
代替,则会发生同样的崩溃。
干杯!