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"
一、操作符分为:单目操作符 ~(非) -(取负)
双目操作符 / = * - + && || =+ 等
二、单目操作符重载函数形式:
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/C++高阶语法:函数指针及其应用
- C++语法基础--动态绑定,派生类,虚函数,覆盖虚函数机制
- C++输入输出流的基本函数及语法
- 关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)
- C++中的三大函数和操作符重载(Boolan)
- c++部分操作符重载及仿函数使用
- (C/C++ 学习笔记)函数指针语法基础
- [语法]C++ 中cin 输入流的多种函数用法
- C/C++高阶语法:函数指针及其应用,回调函数
- C++ 操作符重载、友元、类型转换操作符、五种类型转换、函数操作符
- C++语法细微(五)(多态虚函数)
- C++语法基础--泛型算法(generic algorithm)--插入迭代器back_inserter(),front_insertor(),inserter()以及next()函数简介
- Boost.Bind用法详解(一) 2008-05-09 15:50:50| 分类: C++ |字号 订阅 Boost.Bind 为函数和函数对象提供了一致的语法,对于值语义和指针语义也一样。
- C++ 流操作符重载函数
- C++语法基础--模板实参推断,模板类型形参的实参的受限转换,模板实参推断与函数指针
- C++基础4 类 const函数 转全局函数 返回*this 数组类。友元 函数 类 操作符重载
- C++ 操作符重载、函数对象及类类型转换
- C++语法基础--函数对象,函数对象的函数适配器(绑定器,求反器)
- 关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)
- C++语法2--函数过程