C++对象依赖性问题
C++ Object dependency issues
我在C++中创建自己的游戏引擎时遇到了一个小问题。我想要两个对象:
ObjectCreator类和Player类。对象创建者可以创建玩家,玩家可以使用对象创建者创建项目符号。问题是,相互使用两个头文件会导致游戏无法编译。简单地在头文件中声明没有#include的类是行不通的,因为我不能用这种方式访问函数。
下面是一个例子:
#include "Player.h"
class ObjectCreator
{
public:
ObjectCreator();
void CreatePlayer();
}
#include "ObjectCreator";
class Player
{
Public:
Player();
CreateBulletsWithObjectCreator();
}
那么,有人能解决这个问题吗?任何帮助都将不胜感激:3
如果你有一个循环依赖,它通常是一种糟糕的设计气味。解决这个问题的一种常见方法是将一个部分中被另一个引用的功能提取到第三个类中。
在您的情况下,您可以将ObjectCreator
分为PlayerCreator
和BulletCreator
。无论如何,让一个类创建所有类型的对象似乎没有任何逻辑意义。
从语法上讲,也有一些方法可以与循环依赖共存。诀窍是只在至少一个头文件中转发声明循环引用的对象,而不是包括它的头;然后仅在源文件中包括另一个报头。然而,由于有不良设计的味道,进行上述重新设计通常是一个更好的主意。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 问题在具有依赖性时从其他路径上加载DLL的DLL
- cmake/make(对象)依赖性问题 - 标头更改时而不是重建
- Visual Studio:C++\CLI 包装程序集路径依赖性问题
- VS 2017 C 静态LIB与 /MD项目依赖性问题编辑
- 循环依赖性问题
- C++对象依赖性问题
- 循环依赖性问题
- 继承和返回实例的循环依赖性问题
- Qt单元测试依赖性问题