C++ 运算符重载
2020-06-11 15:57
197 查看
钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>
——运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。C++允许将运算符扩展到用户自定义的类型(如:类对象的相加)
使用运算符函数:
returntype operator op ( argument-list );
- 例如classtype operator *(int a)、classtype operator +(classtype &ct)
- op必须是有效的C++运算符
- 不要返回指向局部变量或临时对象的引用。函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据
重载限制:
- 重载后的运算符必须至少有一个操作数是用户定义的类型,这样防止用户为标准类型重载运算符
- 使用运算符时不能违反运算符原来的句法规则(如一元运算符和二元运算符等的参数数目不能变,参数位置固定),不能修改运算符的优先级
- 不能创建新运算符、遵循“明智”的限制(如不把*重载成交换对象的数据成员)
- 不能重载以下运算符
-
sizeof
- .
- . *
- ::
- ?:
- typeid
- const_cast
- dynamic_cast
- reinterpret_cast
- static_cast
- 大多数运算符都可以通过成员或非成员函数进行重载,但下面的运算符只能通过成员函数进行重载:
- = 赋值运算符
- () 函数调用运算符
- [] 下标运算符
- -> 通过指针访问类成员的运算符
相关文章推荐
- C++学习笔记之运算符重载
- C++之运算符重载(一元)
- C++抽象编程——面向对象(4)——运算符重载与友元函数
- c++学习笔记:运算符重载基础知识之思维导图
- C++之运算符重载(1)
- c++ 运算符重载 你懂的,不说话
- C++学习笔记03--运算符重载(运算符符号篇)
- 【C++的探索路8】运算符重载为友元以及可变长数组程序编写
- 北大 C++ 4.4 运算符重载实例
- C++ 运算符重载和拷贝构造
- C++ 运算符重载
- C++中常用运算符重载
- Learning a Part of C++(for ACM/ICPC) (3) 运算符重载
- C++(6)/运算符重载(一)
- C++ 运算符重载
- C++走向远洋——50(Time类中的运算符重载、一目,二目比较运算符、二目赋值运算符、二目加减法运算符)
- java基础改学C++(八)运算符重载
- c++基础9:函数,函数重载和运算符重载
- C++学习6-面向对象编程基础(运算符重载、类的派生与继承、命名空间)
- 【C++】类和对象--基础知识+四个默认成员函数+运算符重载