【发布时间】:2020-05-12 09:25:18
【问题描述】:
我是初学者。我想将这个MoveSkill 类与Crusader 对象一起使用,但我做不到。
161
class MoveSkill : public Skill {
public:
int step; // kaç adım yer değişecek, - ise geriye + ise ileriye
MoveSkill(int step);
public:
virtual void Use(std::vector<Unit*> units, int userIndex, int onUsing);
};
596
MoveSkill::MoveSkill(int step) : Skill(std::vector<int>(), std::vector<int>(), "") {
this->step = step;
}
894
Crusader::Crusader(std::string name) : Hero(33, 5, 0, 1, 0, 3, 6, 12, 67, 40, name) {
smite = new Smite("Smite");
stunningBlow = new Stunning_Blow("Stunning Blow");
holyLance = new Holy_Lance("Holy Lance");
bulwark = new Bulwark_Of_Faith("Bulwark Of Faith");
moveskill= new MoveSkill("Move skill");
skills.push_back(smite);
skills.push_back(stunningBlow);
skills.push_back(((AttackSkill*)holyLance));
skills.push_back(bulwark);
skills.push_back(moveskill);
}
构建消息:
||=== 构建文件:“无项目”中的“无目标”(编译器:未知)===| C:\Users\emred\Desktop\project.cpp||在构造函数'Crusader::Crusader(std::__cxx11::string)':| C:\Users\emred\Desktop\project.cpp|894|错误:从 'const char*' 到 'int' 的无效转换 [-fpermissive]| C:\Users\emred\Desktop\project.cpp|596|注意:初始化 'MoveSkill::MoveSkill(int)' 的参数 1| ||=== 构建失败:1 个错误,0 个警告(0 分钟,0 秒)===|我该如何解决?
【问题讨论】:
-
您的编译器说您声明构造函数采用
int,但您给了它一个字符串。哪一个?此外,*moveskill = ...看起来很可疑,就像取消对未初始化指针的引用一样。 -
@chris 我认为那一行额外的
*只是为了帮助指出哪一行编译失败。看到;之后的*了吗?它们可能不在 OP 的实际代码中。 -
@RemyLebeau,谢谢,我错过了尾随。
-
非常感谢您
标签: c++