一元操作符重载 ,请注意前置和后置会有区别,友元函数的真正用途

在重载前置的操作符时按正常即可。

eg.    classname & operator++(classname & clas) ;   //前置重载声明 ;

eg.     classname & operator++(classname & clas, int) //后置重载声明, 函数重载不以 返回类型作为判断依据,所以应加一个占位符 .而且 注意后置是先调用值,再进行后置的操作。

Stud operator++(Stud & stu1 ,int )

{

Stud temp = stu1 ;

stu1.num++ ;

return stu1 ;

}

前面的重载既可以用全局函数(即友元函数来实现),也可以用类成员函数来实现。

而  << 左移操作符 和 >> 右移操作符的重载则必须要用友元函数来实现。

istream & operator<<( istream & os ,const  classname & clas) ;

ostream & operator >>(ostream & , const class & clas) ;


友元函数没有this指针,所需操作数都必须在参数表显式声明,很容易实现类型的隐式转换。

下面这些操作符号是不能用友元函数来进行重载的。

   =   ()   【】    ->

友元函数正在的用处即在此处。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值