基类的构造函数不能被派生类继承

这里没有继承。只是如果你不给子类写构造函数和赋值操作符的话, 编译器在大多数情况下都会替你生成好构造函数和赋值操作符。所以实际上调用的是那个。在复制子类的时候,不会因为父类写了赋值操作符,而子类没有写,就导致子类的变量不被复制。
■网友
既然子类扩充了自己的成员 那在构造的时候就要对自己的成员初始化呀 父类又不会对子类的初始化。。。所以子类要有自己的构造函数。。。
■网友
在c++里面,构造函数、析构函数、赋值操作符,这些都不能被继承。另外对于基类的静态成员,无论有多少个派生类,都只有这一个静态成员实例。
■网友
在继承体系c++11新标准中,这个继承有两种解释,第一种就是大家所理解的继承,那么派生类是不可以继承基类的拷贝控制成员的。第二种解释,其实是带引号的“继承”,c++ primer 5中也是这么表达的,其实是用using声明语句显示的让编译器生成与基类构造函数形参列表完全相同的派生类构造函数!声明形式:using B::B; //(不可以添加 explicit 或者constexpr 关键字,当然并不妨碍基类中构造函数是explicit或者constexpr,如果有,那么派生类中生成的构造函数也会同样保留对应的属性)编译器生成形式如下:D(parms):B(parms){ } 其中D是派生类,B是基类,而两者的参数列表其实是一样的。这样派生类自己的成员,就只能默认初始化了.....如果基类有多个构造函数,那么一般情况下派生类也会全部“继承”,除非派生类有自己的定义。还有就是,基类的默认,拷贝,和移动构造函数不能被“继承”(using 声明显式生成),而是编译器按照合成规则自动合成。还有就是“继承”而来的构造函数的访问级别不变,比如基类的构造函数是public或private,则派生类中生成的同样保持不变。
■网友
基类如果写了有参构造函数,需要初始化基类的成员;在子类中这些基类的成员一样要初始化,是通过显式调用基类构造函数的方式实现的,如果你不做显式调用,则不会自动进行基类成员的初始化。我是这么理解的。。。。
■网友
觉得题主只是纠结于继承和包含这个词的含义

■网友
首先,构造函数是用来初始化的。既然基类已经写好了,派生类初始化基类成员变量的时候调用基类的构造函数就好了。
■网友
举个不恰当的例子,爸爸是爸爸他妈生的,儿子是儿子他妈生的,儿子其实继承了爸爸的妈,不过这时候叫做奶奶了,所以你要给儿子造一个妈出来
■网友
基类的构造函数不被继承,派生类中需要声明自己的构造函数。
定义构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类成员的初始化,自动调用基类构造函数完成(使用“初始化列表”自动调用基类构造函数)。
【基类的构造函数不能被派生类继承】


    推荐阅读