Наследование конструкторов в C++

Итак, у меня есть базовый класс под названием Оружие:

/*Weapon.h*/
#ifndef WEAPON_H
#define WEAPON_H
/*Weapon Class*/
class Weapon
{
    int damage = 0,attackSpeed = 0;
public:
     Weapon(int inDamage, int inAttackSpeed) : damage(inDamage), attackSpeed(inAttackSpeed) {};

И класс Sword, который наследует атрибуты Weapons, я тоже хочу наследовать конструктор:

/*Sword.cpp*/
#include "Weapon.h"
#ifndef SWORD_H
#define SWORD_H
class Sword : public Weapon
{
public:
    using Weapon::Weapon;//inherit weapons constructor

Однако, когда я вызвал его в моей главной функции, он получает ошибку, говоря, что аргументы неверны и не является конструктором:

/*Main.cpp*/
#include <iostream>
#include "Sword.h"
using namespace std;
int main()
{
    Weapon weapon(5,5);
    Sword sword(10,10); <-- Error here, invalid parameters

Я хочу унаследовать конструктор оружия, но я должен что-то упустить.

1 ответ

Другие вопросы по тегам