C++11学习——继承构造函数

什么是继承构造函数

指的是派生类通过使用using关键字可以继承基类中的构造函数。
事实上using关键字可以继承基类中的任何函数。

class A {
public:
	A(int a_) {
		a = a_;
	}
	int a;
};
class B :public A {
	using A::A;
};

上述代码说的是类B继承类A,通过using关键字继承A的构造函数(本来A的构造函数不是虚函数,B是不能直接调用的),那么类B就可以调用类A的构造函数来初始化一些公有变量。

为什么要有继承构造函数

书中提到的是,在基类有多个构造函数的时候,由于派生类是不能继承基类的构造函数的,需要重新书写构造函数。简单的using语句可以使得派生类使用基类的构造函数来初始化一些基类的变量。

注意的点

1、基类构造函数的的参数的默认值是不会被继承的 原文是这样说的,但是我用visual C++编译是可以继承默认值的
2、一旦使用继承构造函数,编译器不会自动生成默认构造函数

你可能感兴趣的:(c++,学习,开发语言)