C++运算符重载中 重载为类的成员函数和重载为类的友元函数 的区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++运算符重载中 重载为类的成员函数和重载为类的友元函数 的区别是啥?相关的知识,希望对你有一定的参考价值。

友员函数是指在类内说明()也可定义的一friend
说明的
其可以像成员函数一样访问类的各个成员但是其不属于类因此其不能用this访问列如
friend
void
sum(int
,int);友员函数没有this指针;其运算符重载
参考技术A 假设有个类a,如下语句:a
a;a
b=a;
这时候的复制运算符会起作用,而且是以成员函数被调用的,等价于b.operate=(a)。如果不是成员函数,那么不能这样使用。另外,必须重载说法是有问题的,只有类里面有指针成员的时候才需要重载
参考技术B 友元函数:具有与类成员函数相同访问权利的“非成员函数”,他可以访问类的私有和保护成员——通过该类对象、对象指针或其引用。
简单且一般的说:运算符重载为类的成员函数,他的参数个数会比“该运算符的操作符”少一,而运算符重载为友元函数时,他的参数与其操作个数是相同的。本回答被提问者采纳

以上是关于C++运算符重载中 重载为类的成员函数和重载为类的友元函数 的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

类和对象之运算符重载

Part8 多态性 8.1运算符重载

重载运算符问题

C++ 输入/输出运算符重载

vector

运算符重载