为了完成作业,学生们需要创建一个卡牌结构体,用于保存卡牌的花色、点数和位图。这个结构体需要重载"<"运算符,以便比较左手边(lhs)的卡牌点数是否小于右手边(rhs)的卡牌点数,并返回布尔值。目前,这是我的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的正确方法吗?我不需要将其拆分,对吧?
非常感谢您的帮助。