gpt4 book ai didi

c++ - 友元函数返回对私有(private)数据成员的引用

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:38 25 4
gpt4 key购买 nike

我对下面的代码有两个问题。

class cls{
int vi;
public:
cls(int v=37) { vi=v; }
friend int& f(cls);
};

int& f(cls c) { return c.vi; }

int main(){
const cls d(15);
f(d)=8;
cout<<f(d);
return 0;
}
  1. 为什么它可以编译,因为 f(d) = 8 试图修改一个 const 对象?
  2. 为什么即使在删除 const 属性后它仍然打印 15?

最佳答案

由于 f() 的参数,它不会修改 const 对象,因为正在制作 dcopy 按值传递而不是按引用传递。这也是 d 未被修改的原因。

关于c++ - 友元函数返回对私有(private)数据成员的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12528564/

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