在.cpp文件中定义一个对象
Define an object in a .cpp file
头文件
class Universe
{
public:
Universe();
~Universe();
private:
ChunkManager chunkManager;
};
我想在不使用默认构造函数的情况下初始化chunkManger
。但是,我要使用的构造函数接受一个对象。如何使chunkManager
对象使用.cpp文件中正确的构造函数?所以我想要这样的东西:
Universe::Universe(){
world = new b2World(b2Vec2(0, 0));
world->SetAllowSleeping(false);
//I want something like this because the constructor I want takes a World object
chunkManager = new ChunkManager(world);
player = new Player(world);
}
头中的ChunkManager
是对象而不是指针,所以chunkManager = new ChunkManager(world);
是错误的。
你可以把它作为一个对象,并像这样初始化:
Universe::Universe() : chunkManager(world)
{
但是您还没有world
(除非您可以将其作为参数传递)。最简单的解决方案是使标头具有指针:
private:
ChunkManager* chunkManager;
然后你的.cpp就可以了。
编辑:我认为Kenny Ostram在评论中的意思是,由于您已经动态分配了chunkManager
,您需要确保在某个时刻(可能是析构函数)delete
,以避免内存泄漏。
相关文章:
- 为什么我不能在主函数之外定义一个类的对象(它继承了另一个类)?
- 在C++中,我想通过使用来自变量(例如字符串)的typename信息,从模板中定义一个类对象
- 是否可以定义一个非模板函数,该函数可以将模板化对象作为参数
- 如何在用户定义类型的向量上使用 vector::p ush_back() 来仅修改一个对象?
- 有没有办法为静态对象成员定义一个符合开关标准的常量?
- 通过"this"访问另一个对象的定义?
- 定义一个函数使用可调用对象作为参数
- 在C++中,"static initialization fiasco"是否仅影响对另一个模块中定义的对象的数据成员的引用?
- 自定义内存管理,用于在文件中每行创建一个对象
- 我可以定义一个指向 std::function 类型的对象的函数指针吗?
- 是否应该为具有指向其父对象的指针的对象定义一个复制构造函数
- 为每个对象定义一个唯一的函数
- 将自定义类型传递给另一个对象后,如何访问该类型
- 我如何定义一个向量,并用C++在其中存储对象
- 为什么我的对象无法访问在公共基类中定义的另一个对象的受保护成员?
- 从另一个对象调用一个对象的函数时未定义的引用
- 定义一个派生类BaseClass对象;不工作
- 如何在OpenMP中定义一个对象或结构为线程私有
- 在.cpp文件中定义一个对象
- 定义一个对象有什么区别;s成员的值、指针或引用