我正在编写一些 C++ 类,其中一个类将另一个类的实例作为属性。在编写类构造函数时,我不断收到错误消息“类 Foo 不存在默认构造函数”。这是一个重现错误的小示例:
class Foo {
int size;
char name;
Foo(int s,char n) {
size = s;
name = n;
}
};
class Bar {
int size;
char name;
Foo foo;
Bar(int s, char n,Foo f){
size = s;
name = n;
foo = f;
}
};
Run Code Online (Sandbox Code Playgroud)
如果我删除 Foo 的类构造函数以便使用默认构造函数,错误就会消失。由于我将 Foo 类的现有实例传递到 Bar 的构造函数中,我不明白为什么错误会谈论 Foo 的构造函数。为什么会出现错误?以及如何修复代码?