c++ - C++继承更改成员

标签 c++ inheritance

当前正在学习更多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++ - C++继承更改成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62822778/

相关文章:

c++ - 检查数组索引是否存在

c++ O3优化在循环时中断工作

c# - 从 C++ 启动 C# .Net 应用程序

html - 不合逻辑的 HTML 和 CSS 继承?

c++ - 奇怪的 const_iterator 行为

c++ - 编译器就像未定义预处理器指令一样工作

class - 为什么一个类可以实现多个接口(interface)?

c++ - 在 C++ 中选择两个纯虚函数之一

javascript - oop javascript deepcopy mixins 多重继承

javascript - 为什么在扩展对象时使用 Object.create 作为原型(prototype)?