我有一个像这样的 C++ 头文件:
class someClass : public someBaseClass
{
public:
someClass();
~someClass();
private:
Text playText; //declare text object
};
它的 C++ 源文件是:
someClass::someClass() : playText("Play") //instantiate text object
{
}
someClass::~someClass()
{
}
然后我有另一个类,它有一个静态成员someClass
:
class anotherClass
{
public:
anotherClass();
~anotherClass();
private:
static someClass className; //declare someClass object
};
对应的 C++ 源文件:
anotherClass::anotherClass()
{
}
anotherClass::~anotherClass()
{
}
someClass anotherClass::className; //must do because its static
我的问题是,当我关闭我的应用程序时,我收到一条错误消息:
Unhandled exception at 0x6903a9e0 in Breakout.exe: 0xC0000005: Access violation reading location 0x00000054.
但奇怪的是,当我: playText("Play")
在 someClass 构造函数中注释掉我的代码部分时,消息消失了。我基本上无法实例化playText
,否则我会收到错误(仅当我在运行时关闭应用程序时)。
我完全糊涂了,找不到任何关于为什么会发生这种情况的信息,所以有谁知道为什么会发生这种情况以及我该如何解决?
谢谢。