C++继承更改成员

C++ Inheritance change member

本文关键字:成员 继承 C++      更新时间:2023-10-16

当前正在学习更多的c++,我有一个问题:为什么我必须使用函数来更改父类的成员,而不是只在没有函数的情况下更改它?

class Shape{
private: 
int a;
protected:
int b;
public:
int c;
};
class Rectangle: public Shape{
public:
c = 123;
void change_c(){c = 321;}
};

在变量声明或函数内执行的赋值之外,向变量赋值(如语句c = 123;(是非法的。这意味着你不能在派生类的类范围内执行它:

class Rectangle: public Shape{
public:
c = 123; // <-- illegal
int d = 123; // <-- OK, in C++11 and later
Rectangle() { c = 321; } // <-- OK
void change_c(){ c = 321; } // <-- OK
}