问题及代码:
#include<iostream>
using namespace std;
class Pair
{
int m;
int n;
public:
Pair(int i, int j):m(i),n(j) {} //参数初始化表
bool operator >(Pair p) const; //重载大于号,const防止原数据成员的改变
};
bool Pair::operator>(Pair p)const
{
if (m!=p.m) //m的比较为主,如果m值相等,进行n的比较
return m>p.m;
return n>p.n;
}
int main()
{
Pair p1(3,4),p2(4,3), p3(4,5);
cout<<(p1>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2);
return 0;
}
运行结果:
知识点总结:
运算符重载函数可以是 成员函数,友元函数,和普通函数来定义。
但是由于普通函数还需要其他函数对对象成员的提取,所以一般不推荐普通函数来进行运算符的重载。
本文通过一个C++示例介绍了如何使用成员函数实现运算符重载,特别是重载大于号运算符来比较两个Pair对象。Pair类包含两个整型成员变量,并通过构造函数初始化。重载函数首先比较m成员,若相等则比较n成员。

被折叠的 条评论
为什么被折叠?



