저는 간단한 스크래블 게임을 구현해야하는 대학 프로젝트에 참여하고 있습니다. C++ 초급 - 클래스 내부에서 클래스를 사용하는 데 문제가 있습니다.
은 내가player
클래스 (A
std::string
형태의 점수와 플레이어의 손을 포함하고, 이름과 숫자 (
int
) 점수)를 포함하는
score
클래스 (이.
Player
년대의
하나 회원-기능은 플레이어의 점수 객체를 반환 Score getScore()
이다 그러나, 나는이 컴파일시에 다음과 같은 오류 얻을 :.
player.h(27) : error C2146: syntax error : missing ';' before identifier 'getScore'
player.h(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
player.h(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
player.h(27) : warning C4183: 'getScore': missing return type; assumed to be a member function returning 'int'
player.h(35) : error C2146: syntax error : missing ';' before identifier '_score'
player.h(35) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
player.h(35) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
여기에 각각 라인 (27)과 (35),의를
Score getScore(); //defined as public
(...)
Score _score; //defined as private
나는 컴파일러가 유효한 유형으로 Score
을 인식하는 데 문제가 있다는 것을 알게되었지만 ... 왜? 나는 제대로 player.h
의 시작 부분에 Score.h
을 포함했다 :
Score(); //score.h
//score.cpp
Score::Score()
{
_name = "";
_points = 0;
}
가 어떤 입력을 감상 할 수있다 :
#include "Score.h"
#include "Deck.h"
#include <string>
내가 Score.h
에 정의 Score
에 대한 기본 생성자가!
요청으로 score.h 및 player.h가 : http://pastebin.com/3JzXP36i http://pastebin.com/y7sGVZ4A
첫 번째 오류는 아마도 26 번 줄에 발생합니다. 오류 메시지는 "식별자 전에"나타냅니다. 조금 더 많은 코드를 포함 할 수 있습니다. 또한 생성자는 클래스 정의 내에서 선언되어야합니다. – WhirlWind
나는 그렇게 생각하지 않는다. 반환 값으로 Score를 정의하려고 시도하기 때문에 그 오류가 발생한다. 나는 생성자를 올바르게 선언했다. 어떤 코드에 대한 제안 사항이 있습니까? –
더 많은 코드를 붙여 넣어야합니다. 전체'score.h'와'player.h'의 첫 번째 줄 – pajton