创作人QQ:851301776,邮箱:[email protected],欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
一、操作符重载
1.双目操作符 L#R
1.1 计算类双目操作符:+ -
-->表达式结果是右值(不能对表达式进行赋值操作)
-->左右操作数既可以是左值也可以是右值
-->实现方式有两种
1)成员函数形式(左调右参)
L#R的表达式可以被编译器处理成L.operator#(R)成员函数调用形式,该函数的返回结果就是表达式的结果.
...
2)全局函数形式
#include <iostream>
using namespace std;
//复数
class Complex{
public:
Complex(int r,int i):m_r(r),m_i(i){}
void print(void)const{
cout << m_r << '+' << m_i << 'i'
<< endl;
}
//c1+c2 ==> c1.operator+(c2)
/*1)修饰返回值,返回右值
*2)常引用参数,支持常量型右操作数
*3)常函数,支持常量型左操作数*/
const Complex operator+(
const Complex&am