我感到困惑:
Director.cpp
class Director {
public:
Director() {
}
runScene(Scene _scene) {
scene = _scene;
}
private:
Scene scene; // <-- Private member "scene" of type Scene.
};
Run Code Online (Sandbox Code Playgroud)
Scene.cpp
class Scene {
public:
Scene(int number) {
}
}
Run Code Online (Sandbox Code Playgroud)
g ++说
没有用于调用'Scene :: Scene()'的匹配函数
它似乎正在尝试初始化scene,这是无法完成的,因为没有构造函数不带参数.我还是C++的新手 - 为什么要尝试初始化那个私有成员?
我不确定发生了什么.我尝试更改Scene scene;为Scene scene(int);,这只会导致runScene抛出错误,因为这会使编译器认为这scene实际上是一个函数.
我想要的只是我的类有一个类型的成员属性Scene,我可以随时更改.我究竟做错了什么?
小智 5
通过声明构造函数 Scerne
Scene(int number) {
}
Run Code Online (Sandbox Code Playgroud)
你实际上是禁用没有参数的默认构造函数.您需要向Scene()场景类添加(无参数)构造函数,否则Director构造函数需要看起来像这样:
Director() : Scene(0)
{
}
Run Code Online (Sandbox Code Playgroud)