关于C ++派生类中初始化器的困惑

时间:2018-01-15 14:39:14

标签: c++

如果我尝试这样做:

class Particle {
    protected:
    double redshift_;
};

class Nucleus: public Particle {
    Nucleus(double z): redshift_(z) {}
};

我收到编译错误class ‘Nucleus’ does not have any field named ‘redshift_’,但如果我改为:

class Nucleus: public Particle {
    Nucleus(double z) { redshift_ = z; }
};

它有效。这是为什么?

对于(可能)愚蠢的问题感到抱歉 - 这是我第一次尝试用C ++编写派生类。

0 个答案:

没有答案