#include<list>
#include<vector>
#include<deque>
/*委托构造函数的使用情景:
当一个类中存在大量构造函数1,2,3,4....且1,2,3,4...直接按存在大量
相同操作的时候,可以抽象出一个公共的操作--形成委托构造函数,以此降低代码量,注意,使用为头构造函数就不能同时使用初始化列表
*/
using namespace std;
class TDConstructed
{
//抽象出通用的--委托构造函数
template<class T> TDConstructed(T first, T last):
l(first,last){}
list<int> l;
public:
//构造函数1
TDConstructed(vector<short> & v) :
TDConstructed(v.begin(), v.end())
{
//todo..
}
//构造函数2
TDConstructed(deque<short> & d) :
TDConstructed(d.begin(), d.end())
{
//todo..
}
};