【问题标题】:Constructor in inheritance继承中的构造函数
【发布时间】:2014-10-15 18:17:47
【问题描述】:

如何在类 Tanks 上声明构造函数,以便创建新对象,如下所示:

tanks t34(durability, velocity, damage);

这是我的课:

#include <iostream>
using namespace std;

class vehicles{
private:
    double durability;
    double velocity;
public:
     void drive() { cout << "drive\n"; }
     void info() { cout << durability << " " << velocity << "\n"; }
     vehicles(double d, double v) : durability(d), velocity(v) {}
     ~vehicles() {}
};

class tanks:public vehicles{
private:
    double damage;
public:
    using vehicles::vehicles;
    tanks(double dmg) : damage(dmg) {}
    void shot();
};

所以我想从以下位置复制变量:

vehicles(double d, double v) : durability(d), velocity(v) {}

并将其添加到坦克类。

【问题讨论】:

    标签: c++ class inheritance constructor


    【解决方案1】:

    只需在tanks 中添加另一个构造函数:

    tanks(double dmg, double v, double d):vechicles(d,v), dmanage(dmg) {}
                                        //^^call base class constructor to init base part
    

    那么你应该可以创建tanks的对象如下:

    tanks t34(durability, velocity, damage);
    

    【讨论】:

      猜你喜欢
      • 2015-11-08
      • 2013-06-01
      • 2023-04-03
      • 2015-06-21
      • 2018-10-30
      • 2012-06-26
      相关资源
      最近更新 更多