在C 中,說「轉換建構函式只有引數」,這是怎麼回事

2021-05-14 10:02:10 字數 659 閱讀 2238

1樓:才慕悅臧優

建構函式引數有多種形式,不像那麼說的做是簡化操作,不必建立一箇中間的物件

建構函式本身就是生成新物件,中間再生成其他物件消耗時間,

沒有這種函式也可以,不考慮效率沒事

2樓:全華彩邗歆

將形參改為引用傳遞是可以的,而且程式更加高效,這樣避免了不必要的資料複製,如下:

friend

complex

operator

+(const

complex&

x,const

complex&

y);complex

operator

+(const

complex&

x,const

complex&

y)而你說的不能使用引用傳遞值得是什麼?

對於operator

+這個函式來說唯一不能使用應用的就是它的返回值,因為c是個區域性變數,函式退出也就意味著變數的銷燬。

3樓:良弘壯符宜

是這樣的,類例項的時候,可能有多種構造方法,或許你想在初始構造的時候就對某些變數進行初始,或許你初始的變數因為使用情況的不同也有不同的要求,這種時候你就可以寫多個建構函式,也就是你說的轉換建構函式的思路了!

描述建構函式如何在繼承中使用,關於C 中建構函式的繼承的問題。

繼承技術是物件導向程式設計的主要特徵。物件導向程式語言引入繼承機制,可以實現 重用,提高程式設計效率。c 只支援單繼承,即一個派生類只能有一個基類。類的繼承性是指一個類定義既可以具有其他類的資料成員 屬性成員 方法成員等,也可以使其他類具有自己的資料成員 屬性成員 方法成員等。在類的繼承中,被繼承的...

c中的建構函式是怎麼回事

任何時候,只要建立類或結構,就會呼叫它的建構函式。類或結構可能有多個接受不同引數的建構函式。建構函式使得程式設計師可設定預設值 限制例項化以及編寫靈活且便於閱讀的 如果您沒有為物件提供建構函式,則預設情況下 c 將建立一個建構函式,該建構函式例項化物件,並將所有成員變數設定為此處列出的預設值 預設值...

c 中如果定義了帶引數的建構函式,那麼在定義物件時,必須初始化嗎

是這樣的。你定義了建構函式,系統就不會用預設的建構函式了。中你定義了自己的帶參建構函式,所以系統的預設建構函式就在編譯時,不會生成了。這個就需要自己定義了。否則的話,date a 這樣使用的時候就會報錯。定義物件的時候它會呼叫相應的建構函式初始化自己。如果沒有引數就呼叫不帶引數的建構函式。如果一個類...