如果我尝试这样做:
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 ++编写派生类。