我有一个像这样的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.
但奇怪的是,当我在someClass构造函数中注释掉我的代码的: playText("Play")
部分时,消息消失了。我基本上无法实例化playText
或者我得到一个错误(仅当我在运行时从未关闭应用程序时)。
我完全感到困惑,无法找到有关为什么会发生这种情况的事情,所以有人知道为什么会发生这种情况以及如何解决这个问题吗?
感谢。
答案 0 :(得分:0)
class
是保留关键字。您不能在此处将其用作标识符:
static someClass class;
您必须为静态成员变量使用其他名称。我很惊讶这甚至可以编译。