【发布时间】:2013-05-13 08:52:19
【问题描述】:
我有一个类Player,其成员变量Creature *character 将指向Elf : public Creature 派生类。
我希望能够声明一个Player 对象,然后让它的一个成员指向Elf 并获取信息。
我知道数据成员应该是私有的,但这是一种特殊情况,或者我如何从main 函数中的Elf 成员获取信息?
void Player::set_character(Creature &c)
{
character = &c;
}
...
Player me;
Elf me_elf;
me.set_character(me_elf);
【问题讨论】:
-
看起来不错。你能发布一个重现问题的最小示例吗?
-
您发布的代码看起来是正确的,我怀疑它的其他部分失败了。运行时错误到底是什么,请您提供sscce.org
-
我现在可能以某种方式让它工作了,我希望我知道我刚刚做了什么。很抱歉,现在我只需要知道如何在指针为私有时访问
Elf,假设我想保持私有。 -
好的,所以您不应该通过更改标题并提出不同的问题来真正“回收问题”。您的问题的简单答案是“不要将其设为私有”、“使用访问器函数(setters/getters)”或“使其成为朋友”。
-
@MatsPetersson 抱歉,如果这让您感到困扰,我坚信回收利用 :)
标签: c++ pointers derived-class