如何解决如何从另一个类中的一个类调用setter函数?
我正在尝试从Class A
中的class B
调用setter函数,但是我无法执行此操作,我也不知道为什么。 (我是C ++的初学者,我需要这样做,因为它与我的作业有关。)
这是我的代码:
#include <iostream>
using namespace std;
class A{
private:
int i = 2;
public:
int getInt(){
return i;
};
void setI(int a){
i = a;
}
};
class B{
private:
int c = 3;
public:
void setAI(A a){
a.setI(c);
}
};
int main() {
A a;
B b;
cout << a.getInt() << endl;
b.setAI(a);
cout << a.getInt() << endl;
a.setI(5);
cout << a.getInt() << endl;
}
我得到的输出是:
2
2
5
当我想得到的时候:
2
3
5
解决方法
我刚刚在setAI()
函数中进行了一些更改。我已经按地址而不是值传递了对象。我不确定是什么引起了该问题(因为我也是初学者),但是指针已解决了问题。
#include <iostream>
using namespace std;
class A{
private:
int i = 2;
public:
int getInt(){
return i;
};
void setI(int a){
i = a;
}
};
class B{
private:
int c = 3;
public:
void setAI(A *a){
a->setI(c);
}
};
int main() {
A a;
B b;
cout << a.getInt() << endl;
b.setAI(&a);
cout << a.getInt() << endl;
a.setI(5);
cout << a.getInt() << endl;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。