C++11中的委派构造函数:
与继承构造函数类似。委托构造函数也是c++11中对c++的构造函数的一项改进,其目的就是减少程序员写构造函数的时间。通过委派其他构造函数,多构造函数的类编写起来就很简单容易。
比如:原来很冗余的代码
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass()
{
InitOtherData();
}
~MyClass();
MyClass(bool b) :a(3)
{
InitOtherData();
this->b = b;
cout << this->b << endl;
}
MyClass(int a) :b(true)
{
InitOtherData();
this->a = a;
cout << this->a << endl;
}
void InitOtherData()
{
cout << "hello" << endl;
}
private:
int a;
bool b;
};
MyClass::~MyClass()
{
}
int main()
{
MyClass m(2);
system("pause");
return 0;
}
经过c++11的委托构造函数的改进后:
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass()
{
InitOtherData();
}
~MyClass();
MyClass(int a) :MyClass()
{
this->a = a;
cout << this->a << endl;
}
void InitOtherData()
{
cout << "hello" << endl;
}
private:
int a;
};
MyClass::~MyClass()
{
}
int main()
{
MyClass m(2);
system("pause");
return 0;
}