Hullo, 처음 질문하기! CharacterBuilder는 CharacterBuilder에서 상속 받고 그 함수 중 하나를 재정의하는 BullyCharacterBuilder 클래스와 Character 클래스를 제공합니다.이 클래스는 필요한 접근 자/변경자가 포함 된 일반 클래스입니다.추상 클래스 c의 하위 클래스에서 추상 클래스의 참조 사용
나는과 같이 CharacterBuilder.h에 문자에 대한 포인터를 정의 :
#ifndef CHARACTERBUILDER_H
#define CHARACTERBUILDER_H
#include "Character.h"
class CharacterBuilder {
public:
Character* getCharacter();
void createNewCharacter();
virtual void buildCharacter(int level) = 0;
protected:
Character* leeroy;
};
#endif
CharacterBuilder.cpp에게
#include "CharacterBuilder.h"
#include "Character.h"
Character* leeroy;
Character* CharacterBuilder::getCharacter() {
return leeroy;
}
void CharacterBuilder::createNewCharacter(){
leeroy = new Character;
}
그럼 내가 지금처럼 내 BullyCharacterBuilder 클래스에 CharacterBuilder에서 공개적으로 상속 :
#ifndef BULLYCHARACTERBUILDER_H
#define BULLYCHARACTERBUILDER_H
#include "Character.h"
#include "CharacterBuilder.h"
class CharacterBuilder;
class BullyCharacterBuilder : public CharacterBuilder{
CharacterBuilder* myParent;
void buildCharacter(int level);
};
#endif
마지막으로, 내 BullyCharacterBuilder의 cpp 파일에서 나는이 작업을 수행 할 때
#include "Character.h"
#include "BullyCharacterBuilder.h"
#include "CharacterBuilder.h"
void buildCharacter(int level){
leeroy->setAbilityScores();
}
, 나는 오류 얻을 : ttempt (나는 내가 CharacterBuilder로부터 상속 한 가정) 문자 포인터에서/뮤 테이터과 같이 접근 호출 정의되지 않은 식별자 "leeroy을" 어리석은 질문 일지 모르지만 stackoverflow 및 Google에서 생각할 수있는 모든 키워드 조합을 사용하여이 특정 문제를 검색해 보았습니다. 도움을 많이 줘야 할 것입니다!
Leeroy에 액세스하려면 CharacterBuilder 또는 그 자녀 중 한 사람의 방법이 필요합니다. BullyCharacterBuilder의 메소드가되도록하려면 buildCharacter를 정의 할 수 없습니다. – Nil