gpt4 book ai didi

C++ eclipse 。抽象类不会编译

转载 作者:行者123 更新时间:2023-11-28 00:16:51 24 4
gpt4 key购买 nike

<分区>

我在创建抽象类时遇到了关于 Eclipse 的问题。我不太习惯处理头文件等,我的代码基本上如下所示:(不显示所有内容,仅显示基本类以了解其外观)

设备.h

namespace Equipments {

class Equipment{
public:
virtual ~Equipment();
virtual std::string get_category() const = 0;
protected:
Equipment(std::string name);
private:
const std::string name_;
};

class Weapon : public Equipment {
public:
Weapon(std::string name, std::string something_else);

virtual ~Weapon();

std::string get_category() const override { return "Weapon"; };
private:
const std::string something_else_;
};
} //end of namespace

现在,我遇到了 .h 和 .cpp 文件的问题

在.h文件中,武器构造函数下,我习惯这样写(因为我不用头文件):

Weapon(std::string name, std::string something_else)
: Equipment{name}, something_else_{something_else}
{}

由于我真的不能这样做(据我所知),我该如何将参数发送到我的父类? (在这种情况下,让 eclipse 知道我想将我的 name 参数发送到 Equipment 父类)

我应该在 .cpp 文件中这样做吗?如果是的话,怎么做?

现在是第二个问题。

在 .cpp 文件中,我创建了这样的设备类:

namespace Equipments {

Equipment::Equipment(std::string name) {
name_ = name;
}

Equipment::~Equipment() {
}

std::string Equipment::get_name()
{
return name_;
}

//etc

但我似乎无法创建我的武器类。如果我尝试:

Equipment::Weapon(std::string name, std::string something_else)

我只是找不到成员声明,​​如果我尝试:

Weapon::Weapon(std::string name, std::string something_else)

我没有得到与调用“Equipments::Equipment::Equipment()”相匹配的函数

我只是不知道 eclipse 希望我如何编写代码,我知道这是一个有点菜鸟的问题,但我已经很长时间没有在 eclipse 中使用头文件或 c++ 了。我真的很接近只选择我的笔记本电脑并在 ubuntu 和 gedit 中编程,这样我就不必处理头类,但是,那样我也学不到任何东西。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com