C++ 转发声明(指针) - 访问成员
C++ Forward Declaration (Pointer) - Access member
我正在使用OpenGL和DirectX,并且已经开始开发面向对象游戏类的基础知识。当前类的结构如下:
对象
---|---演员
---------|---典当
---------|---控制器
所以我有继承Object
Actor
的Pawn
和Controller
类。
问题是我需要在 pawn 类中引用 Controller
,在控制器类中有一个 Pawn
的实例。
正因为如此,我在Actor.h
中向前宣布Pawn
和Controller
:
// Actor.h
// (...) Actor Declaration (...)
class Pawn;
class Controller;
然后在Pawn.h
:
// Pawn.h
class Pawn : public Actor
{
private:
Controller* controller;
public:
void DoSomethingWithController(void);
}
这都是好的,没有错误和所有。问题是当我想访问该类中的成员时:
void Pawn::DoSomethingWithController(void)
{
// this->controller-> can't access members like this (members not found)
}
那么,我应该怎么做才能在Pawn中有一个控制器指针,在我的控制器中有一个指向Pawn的指针,将它们保存在不同的文件(.h和.cpp)中,同时能够访问它的成员?
谢谢你的时间。:D
[如果需要更多信息,我会提供]
前向声明向编译器表示将进一步提供给定类型。编译器不知道该类型的字段或成员。因此,您需要在.cpp文件中包含相应的 .h 文件(您访问"控制器"类成员的地方)。
相关文章:
- C++ 传递指向对象的指针的指针,无法访问成员
- 从不同C++类的成员变量访问成员函数
- 使用 getter 访问成员变量C++
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 通过多个类访问成员时出错
- 如何在使用对象指针时访问成员函数
- 为什么相应成员不能正确访问成员函数指针
- 从两个不同类继承的非虚拟基类的访问成员
- 如何使用 gcc 内联汇编器代码访问成员变量
- 如何使用常数向量访问成员函数
- 访问成员函数中参数的类成员
- C++嵌套结构初始化和访问成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 如何使用C STD :: SET中的迭代器访问成员功能
- 访问成员C 时,结构的向量生成了范围的错误
- 带指针的班级访问成员
- 从聚合类访问成员变量
- 如何访问成员变量 sqlite 回调
- ctypes/C++segfault访问成员变量
- 通过父类型的指针或直接从派生类访问成员函数的差异