C++11新特性(59)- 继承的构造函数

问题的背景

假设我们有下面的CRect类:

C++11新特性(59)- 继承的构造函数

由于今天的内容是讲构造函数的,所以省略CRect类的其他功能。在这个类中存在4个构造函数,可以像下面这样使用它们:

C++11新特性(59)- 继承的构造函数

继承的小麻烦

由于某种原因,我们需要继承这个类得到一个新类,比如说CFillRect,但同时还想以CRect同样的方式构造实例,也就是说希望可以像下面这样使用新类:

C++11新特性(59)- 继承的构造函数

C++11之前,我们只能在CFillRect中再次定义这四个构造函数,然后分别调用基类的对应函数,代码大致如下:

C++11新特性(59)- 继承的构造函数

说实话,稍微有点蠢。

继承的构造函数

在C++新标准中,派生类只需要一条声明语句就能实现上述功能:

C++11新特性(59)- 继承的构造函数C++11新特性(59)- 继承的构造函数

是不是好多了?

 

作者观点

很多时候C++11可以看做是更加聪明的C++.

 

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

C++11新特性(59)- 继承的构造函数