C++11中的继承构造函数
C++11中引入了继承构造函数,它可以让子类继承父类的构造函数,从而更加便捷地完成构造函数的定义,从而提高类的可重用性。
继承构造函数的使用方法很简单,只需要在子类的构造函数中使用using关键字,指明要继承的父类的构造函数即可。
class Base { public: Base(int a, int b) { // do something } }; class Derived : public Base { public: using Base::Base; };
在上面的示例中,子类Derived继承了父类Base的构造函数,所以可以直接使用Base的构造函数,而不需要自己定义构造函数。
继承构造函数也可以用于模板类,如下所示:
templateclass Base { public: Base(T a, T b) { // do something } }; template class Derived : public Base { public: using Base ::Base; };
在上面的示例中,子类Derived也可以继承父类Base的构造函数,而无需自己定义构造函数。
继承构造函数也可以用于多重继承的情况,如下所示:
class Base1 { public: Base1(int a, int b) { // do something } }; class Base2 { public: Base2(int c, int d) { // do something } }; class Derived : public Base1, public Base2 { public: using Base1::Base1; using Base2::Base2; };
在上面的示例中,子类Derived继承了父类Base1和Base2的构造函数,所以可以直接使用Base1和Base2的构造函数,而无需自己定义构造函数。
C++11中的继承构造函数可以让子类继承父类的构造函数,从而更加便捷地完成构造函数的定义,从而提高类的可重用性。