C 建立A a而程式設計師自定義的是帶引數建構函式,那麼是否會呼叫預設建構函式

2021-04-20 20:15:48 字數 1661 閱讀 9459

1樓:ok洛陽水席

自定bai義建構函式會覆蓋預設構造函du數,就是zhi說定義了帶參的構造函dao數後,編

2樓:何度千尋

當程式bai員自定義的建構函式du是帶引數構zhi造函式,編譯器不會自dao動生成不帶參內數的構造函容數,即建立a的物件時,物件必須有引數;此時建立a a,編譯器會報錯。

當程式設計師沒有自定義建構函式時,編譯器則會自動成成不帶引數的建構函式,此時建立a a是合法的。

定義類時,一般要寫上多個建構函式。

3樓:匿名使用者

不會了,只要你謝了建構函式,無論有沒有參,系統都不會在使用預設的無參構造方法的

4樓:匿名使用者

會出錯除非你自己同時定義了無參構造

c++帶預設引數的建構函式和過載的建構函式是否可能會發生呼叫的歧義?如何解決?

5樓:幻夢·人生

如果bai帶預設引數

的建構函式去du掉預設引數zhi後,與過載的構造dao函式形式一專致那麼就會出現屬二義性

既然帶預設引數的建構函式能夠與過載的建構函式出現二義性。說明你過載的建構函式沒有意義。

他並不能區分一種構造型別。

也就是說,你直接用帶預設引數的建構函式來代替過載的那個建構函式就可以了

6樓:兔子和小強

有歧義。

已經有了test(int a=0, int b=0)int沒必要再定義test()

7樓:yyh_餘子逸

要求兩個函式的參數列不同(型別或者個數)。進行函式呼叫時,系統會根據函式名和參數列唯一確定呼叫哪一個函式。當程式中有模版函式和非模版函式時,優先呼叫非模版函式,即一般函式。

c++中,假設類a有帶引數建構函式b,建立例項時需要

8樓:匿名使用者

不能 類中bai可以沒有建構函式,構du造函式的作用只

zhi是對dao

類的資料成員初始化(引數專列表)和賦值屬作用,而不是與能不能例項一個物件相關,如果沒有建構函式,定義個物件,記憶體照樣會給這個物件分配空間,只不過沒有被初始化和賦值。 對於你沒有顯示的定義建構函式那麼編譯器只會在以下4種情況合成個預設建構函式:1.

類中含有虛擬函式。2.該類是由虛基類派生而來的。

3.該類的父類含有顯示定義的預設建構函式。4.

含有的資料成員是個物件並且該物件含有顯示定義的預設建構函式。

c++中有多個建構函式的類,在使用預設建構函式的例項建立後,再呼叫類方法時出錯。

9樓:匿名使用者

這個問題bai是函式預設值的問du題造成的。

a (int w=15) 其實相當於

zhi兩dao個宣告 即使用預設值的回a()和不使答用預設值的a(int)。

你用的編譯器版本比較老了吧,第一個會直接提示一個錯誤而不是警告,很明顯的這個也是函式過載時常見的錯誤之一。記住有預設值的函式簽名包括數個(預設值個數+1)不同的呼叫簽名,如果有衝突,就會造成編譯時錯誤:編譯器無法確定到底使用哪個來進行呼叫。

第二個錯誤是因為第一個無法確定呼叫哪一個而產生的後續錯誤。

又手賤點了個匿名……我是farmist

學習c的,自定義安裝visualstudio的時候有哪些

只需要安裝visual c 即可,其它的都不需要。如果你要做 開發,就把web developer最下面兩項是水晶 報表,如果你不做報表,或者不用水晶報表,那就沒啥用了。倒數第3項是單元測試工具 上面兩項都是跟釋出有關的東西,一般情況下是用不上的。所以加粗的5項在一般情況下都是可以不裝的。我主要是學...

c語言自定義函式返回陣列的問題,C語言自定義函式返回一個陣列的問題

方法1 利用全域性變數 分析 全域性變數作為c語言的一個知識點,雖然我們都瞭解它的特點,但在實際教學過程中應用得並不是很多。由於全域性變數的作用域是從定義變數開始直到程式結束,而對於編寫有多個返回值的c語言函式,我們可以考慮把要返回的多個值定義成全域性變數。當函式被呼叫時,全域性變數被更改,我們再把...

如何用C寫自定義檔案格式的程式,比如檔案字尾名可以為

簡單的思路是,生成的檔案後面加上 abc 程式再讀取這個的時候,可以驗證字尾名是否是 abc 然後再對檔案內容解析 c 如何製作自定義型別檔案的開啟方式 1.修改登錄檔,檔案型別的對映。2.右鍵開啟方式選擇你的應用程式。3.開啟你的資料夾,工具資料夾選項檔案型別。新建。byte myfilebyte...