gpt4 book ai didi

c++ - 引用指向哪里?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:45 25 4
gpt4 key购买 nike

我不确定我是否理解了堆栈。我有以下运算符(operator)重载复数 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.y 的 64 位,因为 a.x/a.y 是 int 类型。而返回值a在 operator+=stack-frame 中指向这个“a”-内存区域。

我想知道“a”-memory-area 是什么样子以及它是类型复杂存储在主堆栈框架中?

它是像一个数组并且引用指向“a[0]”还是 a.x 和a.y separeted 并且你需要“两个”引用指针来指向一个复杂类型的对象。

最佳答案

a 是对用于调用 operator += 的变量的引用。

complex w, p;

void f() {
w.x = w.y = 0;
p.x = 1;
p.y = 0;
w += p;
}

operator += 上的参数aw 的别名,参数b 是一个p 的别名。

关于c++ - 引用指向哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27249678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com