c++ - 如何从子成员函数修改父公共(public)成员变量?

标签 c++ class

编程初学者在这里。一段时间以来,我一直在尝试自己解决这个问题,
谁能告诉我为什么打印的是 5 而不是 8?据我所知,这应该可行,我尝试过通过引用传递并使用指针,但由于我仍然有点菜鸟,也许我还没有完全掌握它,所以如果有人可以帮助我并指出我正确的方向我很感激。
干杯。

#include <iostream>
using namespace std;


class classA {
  public:
    int a = 5;

    void print(){
      cout << a << endl;
    }
};

 class classB : public classA {
   public:
     int one;
     void modify (){
       cin >> one;
       if (one == 1){
         a =+ 3;
       }
     }
 };

int main()
{

    cout << "Hi, push '1'" << endl;
    classA printobj;
    classB modifyobj;
    modifyobj.modify();
    printobj.print();

    return 0;
}

最佳答案

printobjmodifyobj是两个完全不相关的对象,每个对象都有一个唯一且不相关且不同的成员变量 a .

要使您的示例工作,您需要一个 classB 类型的对象。 :

classB obj;
obj.print();
obj.modify();
obj.print();

关于c++ - 如何从子成员函数修改父公共(public)成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60314726/

相关文章:

python - 类级装饰器

java - 要创建哪些类方法?

Java - 重写父类

c++ - 打印 vector <string> 到矩阵

c++ - 检测转换运算符的实现

c++ - 在 C++ 中全局定义结构

c++ - 什么时候使用引用的dynamic_cast?

java - IntelliJ 想法 : Show process id

python - 如何使循环中的类具有相同的属性

javascript - 我可以在 golang 中定义/拼凑一个 javascript 类吗?