c++ - 如何从另一个类中的私有(private)指针指向的类中获取私有(private)信息?

标签 c++ pointers derived-class

我有课,Player , 带有成员变量 Creature *character这将指向 Elf : public Creature派生类。

我希望能够申报 Player对象,然后让其成员之一指向 Elf并获取信息。

我知道数据成员应该是私有(private)的,但这是特例还是我如何从 Elf 中获取信息?来 self 的成员 main功能?

void Player::set_character(Creature &c)
{
  character = &c;
}

...
Player me;
Elf me_elf;
me.set_character(me_elf);

最佳答案

您可以通过 Player 的公共(public)方法执行此操作:

class Creature
{
 public:
  virtual void hello() const = 0;
};

class Player{
 public:
  void hello() const { charatcer->hello(); }
  // other methods as before
 private:
  Creature* character;
};

关于c++ - 如何从另一个类中的私有(private)指针指向的类中获取私有(private)信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16621712/

相关文章:

c - 指针与 0 或 NULL 比较有什么区别吗?

c++ - 如何定义指向文件流的静态指针?

c++ - 将 std::vector 扩展为具有 NULL 对象的动态数组

c++ - 在派生类中重定义基类的友元函数

c++ - 将LPVOID位图指针转换为QPixmap

c++ - 将带有数组的结构加载到 SSBO 时会发生什么?

c++ - 如何根据不同的参数定义相同的宏函数

c++ - 矩阵乘法速度问题

C++ 创建一个静态类来存储指针

C++ 在基类本身中重写基类的抽象方法?