对于作业,学生必须制作一个 Card 结构来保存卡片的 Suit、Rank 和 Bitmap。这个结构需要一个重载的“<”运算符来比较 lhs Card 的 Rank 是否小于 rhs Card 并返回 bool。到目前为止,这是我的 Card.h 文件:
#pragma once
#include "GameEngine.h"
struct Card
{
public:
//Constructor and Destructor
Card();
virtual ~Card();
//Methods
bool operator< (const Card& lhs, const Card& rhs)
{
return (lhs.m_Rank < rhs.m_Rank);
}
//Enumerations
enum class Suit
{
Diamonds,
Clubs,
Hearts,
Spades,
};
enum class Rank
{
RankAce,
RankTwo,
RankThree,
RankFour,
RankFive,
RankSix,
RankSeven,
RankEight,
RankNine,
RankTen,
RankJack,
RankQueen,
RankKing,
};
private:
//Datamembers
Bitmap *m_BmpPtr;
Rank m_Rank;
Suit m_Suit;
};
但是 operator< 重载声称它有太多参数。这不是确保可以在一次重载中比较 lhs 和 rhs 的正确方法吗?不是说我必须分开对吧?
提前谢谢了。