我希望有一个类将所有对象保存到其他类中。 例如:如果玩家类想要一个敌人类的成员,我想使用那个类来访问敌人类。
一个例子:
class objectHolder{
public:
enemyClass enemy;
};
class enemyClass{
public:
void member();
};
class player{
public:
objectHolder oh;
oh.enemy.member(); //I KNOW THIS IS ILLEGAL BUT I NEED SOMETHING LIKE THIS
};
我知道代码不正确,编译不好,但我希望你能理解。有谁知道如何实际做到这一点?因为我实际上需要一个所有类都可以访问的类。每个班级都可以通过使用那个大班来调用其他班级的getter和setter以及其他东西。
我希望我很清楚,先谢谢。
答案 0 :(得分:3)
你不能在类体中调用函数...试试这段代码可能有用
class enemyClass{
public:
void member(){std::cout<<"Test";}
};
class objectHolder{
public:
enemyClass enemy;
enemyClass getEnemy(){return enemy;}
};
class player{
public:
objectHolder oh;
void getresult(){oh.getob().member();}
};
int main()
{
player p;
p.getresult();
}
答案 1 :(得分:2)
oh.enemy.member();
是完全合法的C ++语句,因为所有相关成员都有public
访问权限。你把它放在哪里没有意义,因为语句只能出现在函数体中。
答案 2 :(得分:1)
1)制作单身人士
2)初始化&amp;包括你想要持有的所有对象。
3)从任何你喜欢的地方访问单例实例。
4)意识到这是构建程序的一种可怕方式。