
函数重载为什么在类内声明为友元函数
3个回答
展开全部
重载和友元
重载没必要一定友元包括<<>>
你可以定义返回ostream&的函数在定义接受ostream&引用的函数来输出this的值
重载没必要一定友元包括<<>>
你可以定义返回ostream&的函数在定义接受ostream&引用的函数来输出this的值
展开全部
函数重载和友元没有任何关系的,这2个是个独立存在
声明唯为友元仅仅是为了限定该重载函数只能友他的友元类使用而已
如果你想让其他类可以访问者个重载函数,那么就可以设置成public了。这取决于你的需求,你想做什么,毕竟在类中有的函数是不希望其他类能访问的。
比如说你设置你一个控制类,这个控制类能控制其他类的某型函数,而那些函数你只想给这个类使用,那么你声明者个函数为友元函数,并在类中声明者个控制类为友元类就可以达到你的目的了
声明唯为友元仅仅是为了限定该重载函数只能友他的友元类使用而已
如果你想让其他类可以访问者个重载函数,那么就可以设置成public了。这取决于你的需求,你想做什么,毕竟在类中有的函数是不希望其他类能访问的。
比如说你设置你一个控制类,这个控制类能控制其他类的某型函数,而那些函数你只想给这个类使用,那么你声明者个函数为友元函数,并在类中声明者个控制类为友元类就可以达到你的目的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是所有的函数重载都要必须声明为友元函数吧,我目前只知道“<<”和“>>”这两个运算符重载时必须要声明为友元函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询