class Human
{
protected:
string name;
public:
Human () : name ("Jim") {}
Human (string n) : name (n) {}
};
class Adult : public Human
{
private:
string passportId;
public:
Adult ()// : name ("Eric"), passportId ("N0123") - *THIS IS ERROR*
{
// this is ok
name = "Eric";
passportId = "N0934956";
}
Adult (string n, string id)// : name(n), passportId(id) *THIS IS ERROR*
{
// this is ok
name = n;
passportId = id;
}
};
したがって、基本クラスHumanと派生クラスAdultがあります。コード ( はコンストラクターの実装) では、コメント行を確認できます。
この状況でそのような初期化を使用するのはなぜ間違っているのでしょうか?
Adult (string n, string id) : name(n), passportId(id) {} // *THIS IS ERROR*