【问题标题】:How to modify parent public member variable from child member function?如何从子成员函数修改父公共成员变量?
【发布时间】:2020-02-20 16:30:18
【问题描述】:

这里是编程初学者。一段时间以来,我一直在尝试自己解决这个问题, 谁能告诉我为什么打印的是 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;
}

【问题讨论】:

  • 为什么要使用不同的对象打印?
  • a =+ 3; 是a = (+3);,你想要a += 3; 吗?

标签: c++ class


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您修改modifyobj,然后打印printobj。这两个对象完全没有关系,所以改变一个不会影响另一个。

    【讨论】:

      【解决方案3】:

      谢谢大家,我知道这很简单,我还有很多东西要学哈哈!

      【讨论】:

        猜你喜欢
        • 2011-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-08
        相关资源
        最近更新 更多