vrb*_*lgi 3 c++ comparison operator-overloading
我有compare(>,<,==) 两个class object基于不同的标准,如下所述.
class Student
{
int iRollNumber;
int iSection;
int iMarks;
}
Run Code Online (Sandbox Code Playgroud)
iRollNumber, iSection, iMarks(独立)进行比较.iRollNumber, iSection(合并)做比较.iMarks, iSection(合并)做比较.目前我正在实现这一点GetMethods()并使用if elseif elseif..结构进行比较.
这导致到处乱码!
如果我使用operator overloading我必须决定一种比较方式.
请建议一种优雅的编码方式.
要么
是否可以调用运算符重载多态?
小智 7
写命名函数:
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 );
Run Code Online (Sandbox Code Playgroud)
虽然需要在课堂上进行这么多不同类型的比较有点不寻常 - 你通常只需要一个或两个.函数应返回与strcmp()相同的值:
< returns -1
== returns 0
> returns 1
Run Code Online (Sandbox Code Playgroud)