關於C++構造函數重載以及默認參數引起的二義性的問題分析與解決 (即重載時的構造函數模糊問題)

首先,需要明白構造函數是用來做什麼?當創建類對象的時候,編譯器爲對象分配內存空間,並自動調用該構造函數,由構造函數完成數據成員的初始化工作。

其次,大家都必須明白和記得的一點是: 一個類只能有一個默認構造函數。
兩種方式的默認構造函數:

  1. 定義一個無參數的構造函數;
  2. 定義有參數默認值的構造函數。

只要保證,上面這兩種方式只出現其一,保證不同時出現即可。
不然,將會拋出以下錯誤: error: call of overloaded 類名() is ambiguous

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章