重载操作符operator:在程序中与到这个符号,通过调用当前重载操作符函数来行使操作符的功能,
一般是有返回值,为了和后续的操作符继续操作,
匹配操作符 根据 重载操作符函数的参数的类型、顺序、数量
类内重载: this ,作为类成员函数的第一个参数,通过当前类对象去调用,一般在操作的左边,可以手动显式调用函数
类外:注意参数列表的顺序,必须包含自定义类型(类、结构体等),有可能和类内重载的函数有冲突
int operator+(int a){ //重载操作符
return m_a +a;
}
operator int(){ //重载int类型 ,允许和重载操作符同时存在,但优先级低于重载操作符
cout<<"operator int"<<endl;
return this->m_a;
}
operator bool(){
cout<<"operator bool"<<endl;
return m_p;
}
注意:
对于同意个操作符,指定不同的参数类型、顺序、数量,都有可能产生不同的含义
参数的类型、顺序、数量 都有一定的约束。
重载操作符函数 参数不能有默认的值,不能改变操作符的使用规则,原来双目对应两个操作数
不能改变操作符的优先级 和 结合性;
有些操作符 只能在类内重载: operator= ,-> [] ()
不能重载的操作 【sizeof】 【? :】 , 【::】 【.】
不能创建新的操作符