【发布时间】:2015-03-07 16:44:33
【问题描述】:
所以基本上,我有一个全局类和一个播放器类。它们都在它们的 ObjPlayer.h/ObjPlayer.cpp 中定义,对于全局也是如此。但是如何在 ObjGlobal 中转发声明 ObjPlayer 的实例?
这是我所拥有的:(定义构造函数,类减速在别处。)
//Create all the objects
GlobalClass::GlobalClass(void)
{
//Create a player for testing
ObjPlayer oPlayer(4, 8);
}
但由于它在构造函数中,我认为我不能像在主函数中那样访问该类。
int main()
{
GlobalClass oGlobal();
oGlobal.oPlayer.showVars(); //Doesn't work...
system("PAUSE");
return 0;
}
(我知道我不应该使用系统,它只是用于调试。)
我很困惑,我不知道如何解决这个问题。 (我对 C++ 很陌生,我的主要语言是 GML...)
非常感谢您对此问题的任何帮助。
【问题讨论】:
-
在一个类中“前向声明”一个对象是什么意思?这在 C++ 中没有多大意义。
-
你需要让oPlayer成为GlobalClass的成员。可以是公共的,也可以是带有 getter 的私有的。
标签: c++ class forward-declaration