最近、C ++クラスの操作を開始し、エラーが発生したときに開始しました。'deck'と'card'の2つのクラスのクラス定義を含む"resource.h"ファイルがあります。このファイルを#include
別のファイル「card.cpp」に追加しました。card.cppファイルでは、「card」クラスのすべてのメソッド/関数について説明しました。ただし、コンパイル時に次のエラーが発生します(コマンドラインにMinGWコンパイラを使用しています)。
card.cpp:3:29:エラー:ISO C ++は、タイプなしの「setCard」の宣言を禁止します[-fp ermissive] card.cpp:3:1:エラー:「intCard :: setCard(char、char)」のプロトタイプクラス'Card'のリソースに一致しません。h:9:8:エラー:候補は:void Card :: setCard(char、char)
「card.cpp」ファイル:
#include "resource.h"
Card::setCard(char f, char s) {
face = f;
suit = s;
}
Card::Card (char face, char suit) {
setCard(face, suit);
}
Card::~Card () {}
「resource.h」ファイル:
typedef unsigned short int UINT;
class Card;
class Deck;
class Card {
public:
Card(char face, char suit);
~Card();
void setCard(char face, char suit);
char getFace() const { return face; }
char getSuit() const { return suit; }
private:
char face;
char suit;
};
class Deck {
public:
Deck();
~Deck();
Card getCard(UINT x);
private:
Card myCards[54];
};
この問題の原因と、コンパイラが「Card :: setChard()」をint