[英]C++ Expected type-specifier before 'XY' - In member function virtual void
我在我的項目上工作(C ++游戲),發現此錯誤。
“成員函數virtual void中'Clovek'之前的預期類型說明符”
此錯誤適用於所有用戶-克洛維克,柏拉圖·布尼尼,奧布魯克尼·梅克,布朗佐維·普爾斯滕,列克瓦爾·克洛維奇。
對於這個項目,我使用設計模式-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));
}
您沒有顯示Clovek的聲明位置。 顯然,編譯器也看不到Clovek的相應聲明(和定義)。
您應該在聲明或/和定義此類型的標頭中包含標頭。
以該函數為例,您嘗試使用運算符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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.