gpt4 book ai didi

c++ - 友元函数

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

Friend Functions 下的例子为例
以下如何为真?

“请注意,无论是在 duplicate() 的声明中还是在其后来在 main() 中的使用中,我们都没有考虑 duplicate 类 CRectangle 的成员。它不是!它只是可以访问其私有(private)和 protected 成员而无需被成员(member)。”

重复声明在 CRectangle 的公共(public)部分。为什么它不是成员函数而 set_values 是?

这是一个很好的例子吗?如果没有,还有更好的吗?

最佳答案

Pavel 的回答是对你问题的直接回答,但我想你可能不清楚友元函数的用途,所以我想我会举一个常见的例子。

友元函数的一个常见用途是重载流运算符,其中特定运算符需要访问(或通过访问来促进)对象的私有(private)成员。即:

class Rectangle
{
...
friend ostream &operator<<(ostream &stream, Rectangle r);
private:
int width;
int height;
};

friend ostream &operator<<(ostream &stream, Rectangle r)
{
return (stream << "{" << width << ", " << height << "}");
}

在这种情况下,友元函数允许我们访问私有(private)数据进行打印,而无需为数据编写“获取”方法。也许这有助于阐明为什么使用友元函数。

关于c++ - 友元函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1370825/

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