基本上,我有一个全局类和一个玩家类。它们都在它们的ObjPlayer.h / ObjPlayer.cpp中定义,对于全局也是如此。但是如何在ObjGlobal中转发声明ObjPlayer的实例?
这就是我所拥有的:(定义构造函数,类减速在其他地方。)
//Create all the objects
GlobalClass::GlobalClass(void)
{
//Create a player for testing
ObjPlayer oPlayer(4, 8);
}
但是因为它在构造函数中,所以我认为我不能像在main函数中那样访问类。
int main()
{
GlobalClass oGlobal();
oGlobal.oPlayer.showVars(); //Doesn't work...
system("PAUSE");
return 0;
}
(我知道我不应该使用系统,它只是用于调试。)
我很困惑,我不知道如何解决这个问题。 (我对C ++很苛刻,我的主要语言是GML ...)
非常感谢您对此问题的任何帮助。
答案 0 :(得分:0)
您正在构造函数中创建和销毁局部变量,而不是类成员。一旦构造函数完成,它就不再存在,因此无法从外部访问它。
需要在类中声明类成员:
class GlobalClass {
//...
ObjPlayer oPlayer;
//...
};
可以由构造函数初始化:
GlobalClass::GlobalClass() : oPlayer(4,8) {}
和(如果公开)按您的意愿访问:
GlobalClass oGlobal; // no (), that would declare a function
oGlobal.oPlayer.showVars();
答案 1 :(得分:-1)
class oPlayer;