繁体   English   中英

继承中的构造函数

[英]Constructor in inheritance

如何在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) {}

并将其添加到Tanks类中。

只需在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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM