C ++在'XY'之前的预期类型说明符 - 在成员函数virtual void中

时间:2014-01-08 17:58:58

标签: c++ codeblocks

我在我的项目(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));
}

1 个答案:

答案 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