gpt4 book ai didi

c++ - 我如何访问通过引用传递给 operator= 函数的对象的私有(private)数据?

转载 作者:行者123 更新时间:2023-11-30 00:48:32 25 4
gpt4 key购买 nike

我想知道如何访问通过引用或值传递的对象的私有(private)数据?此代码有效。为什么?我需要一些解释。

class test_t {
int data;
public:
test_t(int val = 1): data(val){}
test_t& operator=(const test_t &);
};

test_t& test_t::operator=(const test_t & o){
this->data = o.data;
return *this;
}

最佳答案

private 表示 test_t 类的所有实例都可以看到彼此的私有(private)数据。

如果 C++ 更严格,并限制 private 对同一实例中的方法的访问,这实际上是说 *this 的类型是“更多比您的 o 引用类型更强大”。

*this 的类型与 o 的类型相同 (†),即 test_t &,因此 o 可以做任何 *this 可以做的事情。

(†) 相同的类型,除了添加 const 之外,但这在这里并不重要。

关于c++ - 我如何访问通过引用传递给 operator= 函数的对象的私有(private)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367680/

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