一、重载运算符的使用
1.声明
operator 类型名();
2.使用
(1)对象+对象
class Person
{
public:
int age;
Person operator+(Person p) //重载
{
Person person;
person.age = age + p.age;
return person;
}
void display()
{
cout<<age;
}
};
int main(int argc, char** argv) {
Person p1,p2;
p1.age=10;
p2.age=20;
Person p3 = p1+p2; //调用重载运算符,并返回一个对象类型
p3.display();
return 0;
}
(2)对象+数值
注意对象和数值的顺序,必须和定义的相同
class Person
{
public:
int age;
Person operator+(int ages)
{
Person person;
person.age = age + ages;
return person;
}
void display()
{
cout<<age;
}
};
int main(int argc, char** argv) {
Person p1;
p1.age=10;
Person p3 = p1+40;
p3.display();
return 0;
}
(3)++运算符的重载
--运算符同理
void operator+(int ages)//没有参数默认前置
{
++age;
}
void operator++(int)使用整数作为参数默认是后置
{
++age;
}
(4)=运算符的重载
void operator=(int ages)
{
age=ages;
}
(5)转换运算符的重载
class Person
{
public:
double age;
operator double()
{
return age;
}
};
int main(int argc, char** argv) {
Person p2;
p2.age=20.12;
cout<<double(p2);
return 0;
}