您的位置:首页 > 编程语言 > C语言/C++

C++语法之操作符重载函数

2017-11-14 22:45 218 查看
下面简单介绍下C++中的操作符重载函数:

一、操作符分为:单目操作符 ~(非)  -(取负)

             
    双目操作符 / = * - + && ||  =+ 等

二、单目操作符重载函数形式:

1.成员函数形式: const 类名 operator 操作符(void){函数体}

2.全局函数形式: friend const 类名 operator 操作符 (类名 &对象名){函数体}}  

注:因全局函数无法访问类中private部分 所以在前面 加上friend。

单目操作符的对象可以使左值,也可以是右值,但是结果一定是右值,所以得在函数前加 const 。 

三、双目操作符的重载函数形式:

1.成员函数形式:类名 operator 操作符(类名 & 对象名){函数体}

2.全局函数形式:类名 operator 操作符(类名 & 对象名,类名 & 对象名){函数体}

注: ①双目操作符的对象既可以是左值 又可以是右值。返回的结果是右值 所以得在函数前面加 const并不加引用& 。

    ②在前面加上引用符号如   类名 & operator 操作符(类名 & 对象名){函数体} 表示返回的是对象本身,不加的话返回的是一个临时

③变量(右值) 双目操作符的参数表里可以都加 const 表示常引用,函数体前面也可加const表示常函数,可以调用常对象。

④具体每个位置加不加const 和& 看使用情况,加const表示他修饰的函数、对象、变量不能改变。加& 就不会创建新的变量来操作,而是直接引
用。
⑤另外自增自减 前++ 后++的区别:
前++ 或 --和上面单目操作符一致。后++ 或--需在参数表里增加一个哑元参数int如:const 类名 operator --(int){函数体}

 
⑥插入和提取操作符,只能使用全局函数
        <<操作符
friend ostream &operator << (ostream & out,A &a){}
>>操作符

friend istream &operator >> (istream & in,A &a){}

⑦以下操作符不能重载:"::" "." "sizeof"  "typedef"

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 符号重载函数
相关文章推荐