C ++如何访问另一个类的对象?

时间:2015-12-01 16:16:26

标签: c++ class object inheritance

我希望有一个类将所有对象保存到其他类中。 例如:如果玩家类想要一个敌人类的成员,我想使用那个类来访问敌人类。

一个例子:

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以及其他东西。

我希望我很清楚,先谢谢。

3 个答案:

答案 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)意识到这是构建程序的一种可怕方式。