최근에 C++ 클래스로 작업하기 시작했으며 오류가 발생했을 때 막 시작했습니다. 두 클래스의 클래스 정의가 포함 된 "resource.h"파일이 있습니다 : 'deck'및 'card'. I #include
다른 파일 인 "card.cpp"에이 파일을 저장합니다. card.cpp 파일에서 'card'클래스의 모든 메소드/함수를 설명했습니다. 그러나 컴파일에 나는 다음과 같은 오류 (참고로 내가 명령 줄의는 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() {}
은 "자원을. 시간 "파일 :
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