[英]constructor with one default parameter
假設我有一堂課
class C {
C(int a=10);
};
為什么我打電話
C c;
構造C(int =10)
被調用,如果我調用
C c();
默認的構造函數叫做? 如何避免這種情況? 我只想執行我的構造函數,我試圖將默認的構造函數設為私有,但這是行不通的。
C c();
應該被解析為函數聲明 。 為了顯式調用默認構造函數,您需要編寫C c = C();
。 explicit
,以防止隱式轉換在意外的時刻發生。 代碼C c();
沒有按照您的想法做:
它聲明了一個名為c
的函數,該函數不帶任何參數並返回C
相當於
C c(void);
這是因為c()
被解釋為名為c
的函數。 C()
將觸發C
類的適當構造函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.