私は得る
エラー: 'Base::Base()' の呼び出しに一致する関数がありません
コードで
class Base {
private:
char *field;
public:
Base(char *c){
field = c;
}
};
class Derived : public Base {
public:
Derived(char *c){}
};
追加するとすぐにエラーが消えます
Base() {}
コンストラクタ。Base()
C++ コンパイラが引数なしのコンストラクタを厳密に要求するのはなぜですか? Base
引数なしでオブジェクトを作成しても意味がない場合はどうすればよいでしょうか?
PSたとえば、追加する必要があるため、同様のJavaコードで同じエラーは発生しません
super("")
Derived
コンストラクタ本体の最初のステートメントとして。そして、それは本当に合理的です。