c++、

來源:互聯網
上載者:User

標籤:c++   編譯器   報錯   定義   方式   stc   簡單   div   編譯   

建構函式:C++用於構建類的新對象時需要調用的函數,該函數無傳回型別!(注意:是“無”! 不是空!(void))。

預設建構函式:未提供顯式初始值時,用來穿件對象的建構函式。

以上是二者的定義,但是單從定義很難對二者進行區別,下面依然看代碼。

 

上面的注釋中已標出了預設建構函式和建構函式。下面,對二者的區別進行簡單直白易懂的總結:

1. 預設建構函式主要是用來完成如下形式的初始化的:

 

在這種情況下,如果沒有提供預設建構函式,編譯器會報錯;

非預設建構函式在調用時接受參數,如以下形式:

 

 

2. 如果程式猿沒有定義任何建構函式,則編譯器會自動定義預設建構函式,其形式如  testClass() {};   可以看出,編譯器自動提供的預設建構函式是 啥也沒有啊 ;

 

3. 定義預設建構函式有兩種方式,如上述代碼展示的,一是定義一個無參的建構函式,二是定義所有參數都有預設值的建構函式 ;

 

4. 注意:一個類只能有一個預設建構函式!也就是說上述兩種方式不能同時出現,一般選擇 testClass(); 這種形式的預設建構函式 ;

 

5. 只要程式猿定義了建構函式,編譯器就不會再提供預設建構函式了,所以,程式猿最好再手動定義一個預設建構函式,以防出現 testClass a; 這樣的錯誤。

c++、

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.