Наследование конструкторов в 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 ответ
@ Майк Сеймур, похоже, прав: Microsoft Visual Studio 2013 не поддерживает наследование конструкторов.