c++关于符号重载
A: 操作符重载实现为类成员函数
重载的操作符在类体中被声明,声明方式如同普通成员函数一样,只不过他的名字包含关键字operator,以及紧跟其后的一个c++预定义的操作符。
可以用如下的方式来声明一个预定义的==操作符:
class person{ private: int age; public: person(int a){ this->age=a; } inline bool operator == (const person &ps) const; }; //实现方式如下: inline bool person::operator==(const person &ps) const { if (this->age==ps.age) return true; return false; } //调用方式如下: #include using namespace std; int main() { person p1(10); person p2(20); if(p1==p2) cout<<”the age is equal!”< return 0; }
这里,因为operator ==是class person的一个成员函数,所以对象p1,p2都可以调用该函数,上面的if语句中,相当于p1调用函数==,把p2作为该函数的一个参数传递给该函数,从而实现了两个对象的比较。

浙公网安备 33010602011771号