我在我的项目(C ++游戏)上工作,我发现了这个错误。
“'Clovek'之前的预期类型说明符 在成员函数virtual void“
此错误适用于所有人 - Clovek,PlatoveBrneni,ObourucniMec,BronzovyPrsten,LektvarCloveci。
对于这个项目,我使用了design pattern - builder。
感谢所有回复!
CloverBuilder.h
#ifndef CLOVEK_BUILDER_H
#define CLOVEK_BUILDER_H
#include <iostream>
#include "HrdinaBuilder.h"
#include "Rasa.h"
#include "Brneni.h"
#include "Zbran.h"
#include "Prsten.h"
#include "Lektvar.h"
using namespace std;
namespace LordOfDragonV2 {
class ClovekBuilder : LordOfDragonV2::HrdinaBuilder {
public:
void buildRasa(string nazevRasy, int silaRasy, int odolnostRasy, int inteligenceRasy, int pocetZivotaRasy, string popisRasy);
void buildBrneni(string nazevBrneni, int bonusOdolnosti, int bonusZivota);
void buildZbran(string nazevZbrane, int bonusSily, int bonusZivota);
void buildPrsten(string nazevPrstenu, int bonusInteligence, int bonusZivota);
void buildLektvar(string nazevLektvaru, int bonusSily, int bonusOdolnosti, int bonusInteligence, int bonusZivota);
};
}
#endif //CLOVEK_BUILDER_H
ClovekBuilder.cpp
#include "ClovekBuilder.h"
void LordOfDragonV2::ClovekBuilder::buildRasa(string nazevRasy, int silaRasy, int odolnostRasy, int inteligenceRasy, int pocetZivotaRasy, string popisRasy) {
m_hrdina->setRasa( new Clovek(nazevRasy, silaRasy, odolnostRasy, inteligenceRasy, pocetZivotaRasy, popisRasy) );
}
void LordOfDragonV2::ClovekBuilder::buildBrneni(string nazevBrneni, int bonusOdolnosti, int bonusZivota) {
m_hrdina->setBrneni(new PlatoveBrneni(nazevBrneni, bonusOdolnosti, bonusZivota));
}
void LordOfDragonV2::ClovekBuilder::buildZbran(string nazevZbrane, int bonusSily, int bonusZivota) {
m_hrdina->setZbran(new ObourucniMec(nazevZbrane, bonusSily, bonusZivota));
}
void LordOfDragonV2::ClovekBuilder::buildPrsten(string nazevPrstenu, int bonusInteligence, int bonusZivota) {
m_hrdina->setPrsten(new BronzovyPrsten(nazevPrstenu, bonusInteligence, bonusZivota));
}
void LordOfDragonV2::ClovekBuilder::buildLektvar(string nazevLektvaru, int bonusSily, int bonusOdolnosti, int bonusInteligence, int bonusZivota) {
m_hrdina->pridejLektvar(new LektvarCloveci(nazevLektvaru, bonusSily, bonusOdolnosti, bonusInteligence, bonusZivota));
}
答案 0 :(得分:0)
您没有显示声明 Clovek 的位置。很明显,编译器也没有看到 Clovek
的相应声明(和定义)您应该包含声明或/和定义此类型的标题。
对于此功能中的示例,您尝试使用operator new创建 Clovek 类型的对象:
void LordOfDragonV2::ClovekBuilder::buildRasa(string nazevRasy, int silaRasy, int odolnostRasy, int inteligenceRasy, int pocetZivotaRasy, string popisRasy) {
m_hrdina->setRasa( new Clovek(nazevRasy, silaRasy, odolnostRasy, inteligenceRasy, pocetZivotaRasy, popisRasy) );
}
或者您可能需要使用合格的名称,例如 LordOfDragonV2 :: Clovek 而不是 Clovek