我明白了
错误:没有用于调用“Base::Base()”的匹配函数
在代码中
class Base {
private:
char *field;
public:
Base(char *c){
field = c;
}
};
class Derived : public Base {
public:
Derived(char *c){}
};
我添加后错误立即消失
Base() {}
构造函数。为什么 C++ 编译器严格要求Base()
没有参数的构造函数?如果创建Base
没有参数的对象没有意义怎么办?
PS 例如,我在类似的 Java 代码中没有相同的错误,因为我必须添加
super("")
作为Derived
构造函数主体的第一条语句。这真的很合理。