課題の場合、生徒はカードのスーツ、ランク、ビットマップを保持する Card 構造体を作成する必要があります。この構造体は、オーバーロードされた "<" 演算子を必要とし、lhs カードのランクが rhs カードより小さいかどうかを比較して 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< オーバーロードは、パラメーターが多すぎると主張しています。これは、1 つのオーバーロードで lhs と rhs の両方を比較できるようにする正しい方法ではないでしょうか? 分けなくてもいいじゃないですか。
よろしくお願いします。