重载为友元函数时,一般先在类内用friend关键字声明,然后在类外具体实现(具体实现时不需friend,也不需类名)
重载为普通函数时,直接在类外给出函数实现即可(也不需要类名);
二者的区别在于友元函数对类的数据成员有直接获取权限,而普通函数还要通过类的接口访问数据成员。
还有一种是运算符重载为类的成员函数。同友元类似,成员也有直接访问私有数据成员的权限。
那么什么时候重载为成员,什么时候重载为友元呢?
时间: 2024-10-14 00:56:01
重载为友元函数时,一般先在类内用friend关键字声明,然后在类外具体实现(具体实现时不需friend,也不需类名)
重载为普通函数时,直接在类外给出函数实现即可(也不需要类名);
二者的区别在于友元函数对类的数据成员有直接获取权限,而普通函数还要通过类的接口访问数据成员。
还有一种是运算符重载为类的成员函数。同友元类似,成员也有直接访问私有数据成员的权限。
那么什么时候重载为成员,什么时候重载为友元呢?