如何从另一个类内部的私有指针指向的类中获取私有信息?
How can I get private information from a class pointed to by a private pointer inside another class?
我有一个类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);
您可以通过Player
的公共方法:
class Creature
{
public:
virtual void hello() const = 0;
};
class Player{
public:
void hello() const { charatcer->hello(); }
// other methods as before
private:
Creature* character;
};
如果存在"has a"关系,则必须使用包装器函数来访问数据。
如果你有一个"是一个"的关系,你将能够访问数据,如果数据是"保护"。没有其他麻烦。设置protected允许派生类访问数据。
相关文章:
- Visual Studio 2017 C++,不能使用 typeid() 获取信息对象,缺少指针?;
- 如何从 LIBPCAP 获取信息?
- 如何使用 windbg "dt"命令从命名空间污染的内存转储中获取信息
- 从一个案例获取信息到另一个案例
- 我想从文本文件中获取信息并将该信息分配给类对象
- 从Blender获取信息C++(DeviceContext,RenderContext,Scene-Informatio
- 从文本文件c++中获取信息并进行匹配
- CORBA客户端/服务器应用程序,从服务器获取信息(空值)
- 如何解析html并获取信息
- C++套接字 WEB 从特权站点获取信息
- 如何从main到void获取信息
- 从内存进程中获取信息
- 在不遍历文件内容的情况下从文件中获取信息
- 如何在连接到网站时获取信息
- 如何从外部资源中获取信息
- 从EXCEPTION_RECORD中获取信息
- 是否有一种方法可以从VS环境之外的MS单元测试框架中获取信息
- 从标准输出(c++)中获取信息
- 你能像如何从Jar文件中获取信息一样从c++ Lib文件中获取信息吗?
- 如何在c++中从文件中随机获取信息