Hullo, первый раз задавая вопрос! У меня есть 3 класса, CharacterBuilder, который является абстрактным классом BullyCharacterBuilder, который наследует от CharacterBuilder и переопределяет одну из его функций, а также Character, который является универсальным классом, полным int с помощью accessors/mutators, которые мне нужно использовать.с использованием ссылки из абстрактного класса в дочернем классе абстрактного класса 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;
}
Тогда я унаследовать публично от CharacterBuilder в моем классе BullyCharacterBuilder так:
#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
Наконец, в файле cpp для моего BullyCharacterBuilder, я a ttempt позвонить аксессор/мутаторам от указателя символов (который я предполагаю, что я унаследовал от CharacterBuilder) как так:
#include "Character.h"
#include "BullyCharacterBuilder.h"
#include "CharacterBuilder.h"
void buildCharacter(int level){
leeroy->setAbilityScores();
}
При попытке сделать это, я получаю Ошибки: идентификатор «Лиры» не определен Это может быть глупый вопрос, но я попытался найти эту конкретную проблему в stackoverflow и google, используя каждую комбинацию ключевых слов, о которых я мог думать. Был бы очень обязан любой помощи!
Вы должны быть в методе CharacterBuilder или одного из его детей для доступа к leeroy. Вы не можете определить buildCharacter как это, если хотите, чтобы это был метод BullyCharacterBuilder. – Nil