我不确定我是否理解了堆栈.我有以下操作符
复数a和b的重载(a = 3 5i和b = 2 i).
struct complex{
int x;
int y;
};
complex& operator+=(complex& a, const complex b){
a.x=a.x+b.x;
a.y=a.y+b.y;
return a;
}
现在我想知道返回值的参考指向哪里.
我认为在主堆栈框架中有一个a = a.x和a的内存区域
a.y为64位,因为a.x / a.y的类型为int.并且返回值a
在operator = stack-frame中指向这个“a” – 存储区域.
我想知道“a” – 记忆区域是什么样的,以及如何成为对象
类型复合体存储在主堆栈框架中?
它是否像一个数组,引用指向“a [0]”或是a.x和
a.y separeted,你需要“两个”参考指针指向一个
复杂的对象.
最佳答案 a是对用于调用operator = with的变量的引用.
complex w, p;
void f() {
w.x = w.y = 0;
p.x = 1;
p.y = 0;
w += p;
}
operator =的参数a是w的别名,参数b是p的别名.