编程初学者在这里。一段时间以来,我一直在尝试自己解决这个问题,
谁能告诉我为什么打印的是 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;
}
最佳答案
printobj
和 modifyobj
是两个完全不相关的对象,每个对象都有一个唯一且不相关且不同的成员变量 a
.
要使您的示例工作,您需要一个 classB
类型的对象。 :
classB obj;
obj.print();
obj.modify();
obj.print();
关于c++ - 如何从子成员函数修改父公共(public)成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60314726/