#include <iostream>
using namespace std;
class B{
public:
int x;
void setx(int a){
x =a;
cout<<"Inside set "<<x<<endl;
}
void show();
};
void B::show(){
cout<<"inside show "<<x<<endl;
}
class A{
public:
void func();
void func2();
B bb;
};
void A::func(){
bb.setx(100);
bb.show();
}
void A::func2(){
bb.show();
}
int main()
{
A a;
B b;
a.func();
b.show();
a.func2();
return 0;
}
更改仅适用于 A 类,其中 B 类的实际值没有变化。我试过 static 但它显示错误。
我得到的输出: 内装100 里面显示 100 里面显示 0 里面显示 100
我想要的输出: 内装100 里面显示 100 里面显示 100 里面显示 100
最佳答案
尝试:
int main()
{
A a;
B b;
a.func();
a.bb.show();
a.func2();
return 0;
}
您在错误的对象上调用了 show()
。因为 a
有它自己的 bb
,你需要使用 a.bb
来查看变化。 main
中的 b
是不同的对象(即使属于同一类)。
关于c++ - 从另一个类更改一个类的数据成员的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651018/