一、介绍
学习C++的开发者都知道,在C++的类定义中,传统的会有常见的六个默认和构造相关的函数(不明白的可以去查一下资料)。但在实际情况中,经常会遇到一些具体的开发场景,只用这几个函数可能还是会导致重复代码的出现。开发者在学习编程之初,估计都会有人不断告诉你,只要有重复代码,就有优化的可能性。
但是,如果代码的重复到了最基础的阶段,开发者一般就无能为力了,即使使用了一些特殊的技巧,也会导致代码的可读性和可维护性的降低。本篇主要是分析构造函数在重载和继承时遇到的重复代码的问题。
二、委托构造函数(Delegating constructors)
委托构造函数非常好理解,就是一个构造函数委托(调用)另外一个构造函数来实现。这样做的好处是显而易见的,不需要在两个及以上的构造函数上写重复的代码。比如一个类中有两个以上的构造函数,他们都要对至少两个以上的相同变量进行赋值,那么委托构造函数的优势就体现出来。下面看一下代码,就清楚了:
#include <iostream>
class Example {
public:
Example() : Example(0) {
}
//Example() : data_(d), len_(10), height_(10) {}//旧标准
Example(int d) : data_(d), len_(10), height_(10) {
}
Example(const Example &ex) : Example(</