C ++在类中实例化一个类。正确的方法?

时间:2014-03-06 23:59:36

标签: c++ class object constructor instantiation

我努力在另一个班级中实例化一个班级。我主要担心的是......我在哪里放置构造函数?在头文件中?在类文件中?或两者兼而有之?似乎没有什么工作正常。我会尝试尽可能简单。如果它太简单,请告诉我;) 这就是我认为应该如何:

GameWorld.h:

#include "GameObject.h"

class GameWorld
{
protected:
    GameObject gameobject;
}

GameWorld.cpp:

#include "GameWorld.h"

void GameWorld::GameWorld()
{
    GameObject gameObject(constrctor parameters);
}

//When I compile the program, the values in the gameObject, are not set to anything.

这是我尝试过的事情之一。由于显而易见的原因,将构造函数放在标题中也不会起作用;我不能从GameWorld中给它任何参数。

这样做的正确方法是什么?

编辑:哎呀。删除了一些没用的东西。

2 个答案:

答案 0 :(得分:10)

您需要初始化包含类初始化列表中的GameObject成员。

// In the GameWorld.h header..
class GameWorld
{
public:
    GameWorld(); // Declare your default constructor.

protected:
    GameObject gameobject; // No () here.
}

// In the GameWorld.cpp implementation file.
GameWorld::GameWorld() // No 'void' return type here.
  : gameObject(ctorParams) // Initializer list. Constructing gameObject with args
{
}

答案 1 :(得分:0)

我相信您会想要在GameWorld标头中声明GameObject,然后在GameWorld构造函数中创建GameObject对象。

//GameWorld.h
#include GameObject.h

class GameWorld
{
private:
    GameObject object;

};

//GameWorld.cpp
#include GameWorld.h

GameWorld::GameWorld()
{
   object();
}