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

来源:互联网 发布:对工作表示满意的数据 编辑:程序博客网 时间:2024/05/09 03:43

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

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指针,所需操作数都必须在参数表显式声明,很容易实现类型的隐式转换。

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

   =   ()   【】    ->

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


原创粉丝点击