0

我越来越困惑:

导演.cpp

class Director {

  public:
  Director() {

  }

  runScene(Scene _scene) {
    scene = _scene;
  }

  private:
  Scene scene; // <-- Private member "scene" of type Scene.

};

场景.cpp

class Scene {

  public:
  Scene(int number) {


  }

}

g++ 说

调用 'Scene::Scene()' 没有匹配的函数

似乎它正在尝试初始化scene,这是无法完成的,因为没有不带参数的构造函数。我还是 C++ 的新手——为什么要初始化那个私有成员?

我不确定发生了什么。我尝试更改Scene scene;Scene scene(int);,这只会导致runScene抛出错误,因为这会使编译器认为这scene实际上是一个函数。

我想要的只是我的班级有一个 type 的成员属性Scene,我可以随时更改它。我究竟做错了什么?

4

1 回答 1

5

通过在Scerne

Scene(int number) {

}

您实际上是在禁用不带参数的默认构造函数。您需要向Scene()场景类添加(无参数)构造函数,或者您的Director构造函数需要如下所示:

Director() : Scene(0)
{
}
于 2013-10-20T09:36:32.003 回答