我最近开始使用C++类,并在出现错误时刚刚启动。我有一个“resource.h”文件,其中包含两个类的类定义:'deck'和'card'。 I #include
将此文件放在另一个文件“card.cpp”中。在card.cpp文件中,我描述了'card'类的所有方法/函数。但是在编译我收到以下错误(FYI我使用MinGW的编译器命令行):C++类方法声明返回错误
card.cpp:3:29: error: ISO C++ forbids declaration of 'setCard' with no type [-fp ermissive] card.cpp:3:1: error: prototype for 'int Card::setCard(char, char)' does not matc h any in class 'Card' resource.h:9:8: error: candidate is: 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() {}
“资源。 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];
};
是什么原因造成这个问题,为什么在世界上没有编译器认为‘卡:: setChard()’是一个int
你在'Card :: setCard'之前缺少返回类型。 – avakar