我是 C++ 新手,我遇到了麻烦。所以我正在尝试制作可以使用通用子类调用彼此字段的类。
基本上,我正在尝试制作一个游戏,其中有一个通用类型和三种类型,它们彼此具有优势/劣势。我真的只有 Java 方面的经验,而这种事情的 c++ 翻译对我来说并不合适
泛型类型分为三种类型:类型 1、类型 2、类型 3。
泛型类型需要具体
在通用类型中有字段攻击,防御,生命值
类型 1、2 和 3 都继承了这些字段。
我正在尝试在泛型类中创建一个虚函数:
virtual void attack(Generic* g);
问题是,例如,当我尝试制作时type_1.attack(generic)
,我想做 g->hitpoints 来获取泛型的生命值,但它似乎不像在 C++ 中那样工作。
另外,我知道我一定做错了什么,因为类型 1、2 和 3 都包含泛型类型的标头,但是如果我想在 main.cpp 中包含这 3 个标头,它会给我一个声明泛型 3 的错误分开的时间。
我该怎么做呢?
抱歉,这是一个非常具体的问题,而且有点含糊。如果我需要澄清任何事情,请告诉我
编辑:这是我正在谈论的基本设置
//in generic.h
class Generic {
protected:
int hitpoints;
int strength;
int defense;
public:
virtual void attack(Generic* g);
};
//type1.h
#include 'generic.h'
class Type1 : public Generic {
void attack (Generic* g);
};
//in type1.cpp
void Type1::attack(Generic*g) {
g->hitpoints = strength - g->defense;
}