[C++11]委托构造函数
生活随笔
收集整理的這篇文章主要介紹了
[C++11]委托构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
委托構造函數允許使用同一個類中的一個構造函數調用其他的構造函數,從而簡化相關變量的初始化。
注意點:
1.這種鏈式的構造函數調用不能形成一個閉環(死循環),否則會在運行期拋異常。
2.如果要進行多層構造函數的鏈式調用,建議將構造函數的調用寫在初始化列表中而不是函數體內部,否則編譯器會提示形參的重復定義。
3.在初始化列表中調用了代理構造函數初始化某個類成員變量之后,就不能在初始化列表中再次初始化這個變量了。
代碼如下:
#include <iostream> using namespace std;class Test { public:Test(){}Test(int a){cout << a << endl;}Test(int a, int b){cout << a << endl;//跟Test(int a)中的代碼一樣cout << b << endl;}Test(int a, int b, int c){cout << a << endl;//跟Test(int a,int b)中的代碼一樣cout << b << endl;//跟Test(int a,int b)中的代碼一樣cout << c << endl;}int a;int b;int c;};委托構造函數
代碼如下:
測試結果:
在初始化列表中調用了代理構造函數初始化某個類成員變量之后,就不能在初始化列表中再次初始化這個變量了。
總結
以上是生活随笔為你收集整理的[C++11]委托构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C++11]继承构造函数
- 下一篇: [C++11]统一的数据初始化方式 -