gpt4 book ai didi

c++ - 复制和移动构造函数是自动的 friend 吗?

转载 作者:行者123 更新时间:2023-12-02 07:45:26 25 4
gpt4 key购买 nike

当我们定义复制或移动构造函数时,我们可以访问另一个类的私有(private)变量。 C++ 是否会自动使它们成为彼此 friend

例如:

my_str::my_str(my_str&& m) 
{
size_ = m.size_; //accessing private variable another my_str class
buff_ = m.buff_; //accessing private variable another my_str class
m.buff_ = nullptr;
m.size_ = 0;
}

最佳答案

它不被视为友元,但是是的,类 my_str 的任何成员函数可以访问 my_str 类型的所有实例的私有(private)成员,不仅仅是 this实例:

class my_str {
void foo(my_str& other) {
// can access private members of both this-> and other.
}

static void bar(my_str& other) {
// can access private members of other.
}
};

其背后的总体思想是允许 2 个或多个相同类型的对象进行交互,而不必公开其私有(private)成员。

关于c++ - 复制和移动构造函数是自动的 friend 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59026637/

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