用operator关键字去专门重载运算符的。
两种用法:
1.类内重载运算符:(类内成员函数)
2.类外重载运算符:(全局函数)
//类内重载:将判断相等运算符重载为专门判断对象的年龄与参数p的值是否相等
bool operator==(const person& p)//必须以"operator 操作符"作为函数名 operator代表运算符重载操作;
//只有一个参数,是因为对象的this指针可以指向对象的年龄,而调用函数时已经知道了是哪个对象调用的函数,所以运算符左边的值已经定了,只需要再传一个参数。
{
if (this->age == p.age)
{
return true;
}
return false;
}
//调用部分
person p1(10);
person p2(10);
if (p1 == p2)
//类外重载
// 左操作数的类型必须被显式指定
//运算符重载普遍是针对类的,所以参数也多为类对象的引用
bool operator==(person const& p1 ,person const& p2)
{
if (p1.age == p2.age)
{
return true;
}
else
{
return false;
}
}
//调用部分
person p1;
person p2;
p1.age = 18;
p2.age = 18;
if (p1 == p2)