C++继承更改成员
C++ Inheritance change member
当前正在学习更多的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
}
相关文章:
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 如何从另一个文件继承私有成员变量和公共函数
- C++继承更改成员
- 继承和友元函数,从基类访问受保护的成员
- 删除C++继承中虚拟类成员的代码重复
- 成员包含其他继承类的继承类?
- 如何定义一个没有重复代码的继承的 const 类成员函数?
- 打印所有继承的类成员变量和方法
- 如何在复杂继承中访问静态成员变量
- enable_if继承的成员函数的名称查找错误
- 初始化依赖于子类的继承类的常量类成员
- 继承:调用基类的成员和方法
- 类设计:类成员继承自同一基类
- 使用 CRTP 进行选择性静态成员继承
- 具有'using'的模板模板成员继承
- 结构绑定:与公共数据成员(继承的基类)结合
- 为什么C++继承不允许基类的公共成员继承到派生类的私有成员?
- 静态成员继承和保护
- 是否可以检查是否为类定义了成员函数,即使该成员继承自未知基类
- 混合模板/非模板继承分类和成员继承