c 中構造器的呼叫問題

時間 2022-06-04 20:50:05

1樓:真的無奈啊

a aa();這句話表示宣告瞭一個返回值為a型別的普通函式!詳細解答如下:

使用無參建構函式建立物件時,應該用語句a aa;而不是a aa();你這是宣告瞭一個名為aa()返回值為a型別的普通函式!

只要人為的定義建構函式哪怕是空建構函式系統都將不再生成預設的建構函式,而且你用的是建構函式過載,如果定義a aa;才呼叫第一個建構函式,定義a aa(1,2);才呼叫第二個建構函式。但是你偏偏兩種定義都不用而用a aa();這是宣告一個返回值型別為a的普通函式,不是宣告一個物件,這樣一來系統就兩個建構函式都不呼叫,沒有輸出是理所當然了!

函式宣告格式: 返回值型別 函式名(形參);注意形參可要可不要你的**格式:a aa();

這就是一個普通的函式宣告;

鑑於你提供了兩種形式的建構函式,你的物件宣告只有兩種形式:

a a;呼叫第一個建構函式

a a(整型實數,整型實數);呼叫第二個建構函式

2樓:匿名使用者

就是你在類的公共區域定義的a(){}

這個叫預設建構函式,如果沒有傳實參,就呼叫這個函式;有兩個實參就呼叫下面那個建構函式

有預設建構函式,主要是防止出現你類中的成員變數沒有賦值導致的亂碼問題

C中類的建構函式怎麼呼叫這個類的另建構函式

就是 myclass myclass new myclass 這句 在建立物件的時候 它會自己呼叫無引數的建構函式 上邊的同志說的 很對啊! myclass myclass new myclass 這樣應該就可以了!c 中例項化的時候,new關鍵字用於建立物件和呼叫建構函式。呼叫建構函式是什麼意思?...

c中建構函式與解構函式的問題,C 中建構函式與解構函式的問題

你的getname函式在 你的類定義中只有getscore和getid c 關於建構函式和解構函式呼叫次數的問題 沒問題啊。引數傳遞的時候第一次拷貝構造呼叫,在函式返回的時候賦值給c2 再次呼叫了拷貝構造。析構的話 c1 c2 c 三次 傳遞引數和返回引數各一次拷貝建構函式,所以是2次 有兩個物件c...

c 解構函式呼叫問題 為啥呼叫了四次,而建構函式只呼叫了2次

建構函式是由語句circle cobj 3,4 和circle cobq 5,6 呼叫的,另外兩次是由複製建構函式生成臨時類物件,發生在函式face 的引數傳遞的時候,由於你沒有提供複製建構函式,系統會自動生成,所以程式結束前,需要4次呼叫解構函式。對的,當使用引用傳遞時,無需用複製建構函式生成新的...