即使派生类没有成员变量,我是否需要重新实现基类的所有构造函数?

RD指南

假设我有一个基类

class Base
{
public:
    Base();
    Base(int i, double j);
    Base(int i, double j, char ch);

    virtual void print();

private:
    int m;
    double l;
    char n;
};

我想派生一个重写打印功能的类,但除此之外,它与基类完全相同。

class Derived : public Base
{
public:
    void print();
};

有没有一种方法可以在派生类上使用基类的所有构造函数,而无需为派生类重写所有这些构造函数?

贾罗德42

从C ++ 11开始,您可以使用using

class Derived : public Base
{
public:
    using Base::Base; // use all constructors of base.

    void print() override;
};

现场演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

派生类不能访问私有成员(尽管构造函数是在基类中定义的)

仅重新初始化派生类中的所有成员变量

是否可以使用基类构造函数使用派生类将值初始化为基类私有成员?

派生类的实例化是否为基类的私有成员分配内存?

是否需要在类构造函数中声明所有成员

在没有成员变量的类上移动构造函数与复制构造函数的行为

C ++ | 派生类正在访问基类的私有成员,而不是其自己的私有成员

派生类是否可以具有不在C ++基类中的构造函数?

实现派生类构造函数时出错:“没有重载函数的实例与指定类型匹配

派生类(构造函数有参数)和基类(构造函数不带参数)之间没有可行的转换

重写派生类C ++中基类私有成员的行为

派生类能够访问其基类的私有成员

如何为带有私有成员的派生类实现move-Constructors

没有构造函数的派生类的方法

从虚拟基础派生类,没有默认构造函数

如何在派生类构造函数中初始化基类成员变量?

访问派生类C ++的私有成员

您可以使用using将基类中的公共成员重新声明为派生类中的私有成员吗?

派生类无法使基类中的私有成员重载其他基类中的私有成员

c++派生类对象没有成员,为什么?

(为什么)在纯虚拟派生类中是否需要虚拟基类构造函数调用?

派生类的构造函数可以比其基类的构造函数具有更多的参数吗?

朋友类对象可以访问派生类对象上的基类私有成员吗?

我可以禁止从基础调用派生类的私有成员吗?

类的所有成员的Onclick函数

有没有办法声明作为派生类类型的抽象基类的成员?

如果基类没有成员,派生的C ++类的大小将是多少?

基类私有成员属于派生类的哪一部分?

通过指向基类的指针删除没有新成员的派生类