C++ 類內(nèi)構(gòu)造函數(shù)調(diào)用另一個構(gòu)造函數(shù)(委托構(gòu)造函數(shù))

我們在寫類的構(gòu)造函數(shù)的時候, 有時候一個構(gòu)造函數(shù)可以完成另一個構(gòu)造函數(shù)中的一部分內(nèi)容, 這時候我們就希望調(diào)用另一個構(gòu)造函數(shù), 減少代碼冗余.
C++11 中提供了委托構(gòu)造函數(shù)幫助我們實現(xiàn)這一功能.

示例代碼

#include <iostream>
#include <string>
#include <vector>

using std::string;
using std::vector;

class A {
public:
     A();
     A(string s);
     void foo();
protected:
     vector<string> v;
};
A::A() {
     v.push_back("This is A()");
}
A::A(string s) : A() {
     v.push_back("This is A(string s)");
     v.push_back(s);
}
void A::foo() {
     for (auto i : v) {
          cout << i << endl;
     }
}
int main() {
     A a("holo");
     a.foo();
     return 0;
}

結(jié)果

<pre>
This is A()
This is A(string s)
holo
</pre>
需要C++ 11 以上支持
delegating constructors are permitted only in C++11

參考

MSDN 構(gòu)造函數(shù) - 委托構(gòu)造函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 人生苦多,快來 Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,669評論 9 118
  • C++11的新特性具有廣泛的可用性,可以與其他已有的,或者新增的語言特性結(jié)合起來進行自由的組合,或者提升已有特性的...
    認(rèn)真學(xué)計算機閱讀 1,620評論 0 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,626評論 18 399
  • 1.星空下只有我和你 最喜歡這句“你在我心上 上下十方 永遠是萬里眼中明”提燈等你 2.——為什么有些人明明看起來...
    九啊九啊閱讀 1,195評論 0 1
  • 我居住的小縣城有一條望不到頭的路,兩旁種著很多古老的垂柳樹,不知道有多少個年頭,年年春末夏初柳絮滿天飛。...
    唯妙唯肖閱讀 323評論 0 2

友情鏈接更多精彩內(nèi)容