【发布时间】:2023-04-08 05:55:01
【问题描述】:
我正在尝试从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
【问题讨论】:
-
在
void setAI(A a)中,您正在复制 A。您需要通过引用 (void setAI(A& a)) 获取它,否则您正在修改复制的值。 -
哦,我知道我最近才学习指针,并没有意识到。 Tyvm 为您提供帮助。