使用if else进行对象比较|运算符重载

问题描述

| 我必须根据不同的标准将
compare(>,<,==)
2
class object
,如下所述。
class Student
{
    int iRollNumber;
    int iSection;
    int iMarks;
}
我想和
iRollNumber,iSection,iMarks
做比较(独立地)。 我想和
iRollNumber,iSection
(组合)做比较。 我想和
iMarks,iSection
(组合)做比较。 .......... 目前,我正在使用
GetMethods()
实现此目标,并使用
if elseif elseif..
结构对其进行比较。 这导致到处都是凌乱的代码! 如果我使用
operator overloading
,则必须决定一种比较方式。 请提出一种使用优雅编码的方法。 要么 可以调用操作符多态重载吗?     

解决方法

        编写命名函数:
int CompareR( const Student & a,const Student & b );
int CompareS( const Student & a,const Student & b );
int CompareM( const Student & a,const Student & b );
int CompareRS( const Student & a,const Student & b );
int CompareMS( const Student & a,const Student & b );
尽管在一个类上需要进行许多不同种类的比较有点不寻常-通常您只需要一个或两个即可。函数应返回与strcmp()相同类型的值:
<  returns -1
== returns 0
>  returns 1
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...