1樓:匿名使用者
a a2();
這是一個函式宣告啊
名稱為 a2,返回值型別為 a 的函式
只是宣告,沒有執行,所以不會輸出
2樓:二月廬
樓主要看清a1和a2具體是做什麼的
建構函式只有在產生物件或者是初始化的時候才會被呼叫預設的也是如此
這裡的a2:
其生命形式為 a a2();
顯然為一過程函式 返回型別
但這個函式 僅僅是一個宣告而已
並未執行 所以沒有a類物件的生成以及初始化資訊不會呼叫建構函式
如果在a2()中返回了一個a的物件,他呼叫建構函式的方法和a一樣,因為這裡有顯示的建構函式,不需呼叫預設建構函式。
樓主可以改一下a2()的實現
使其返回一個物件
然後再在main()中呼叫a2()看看
3樓:吳小王
預設的是不帶引數的建構函式。
但是你只要寫了建構函式,就不預設得有建構函式了。
這是從c++中的話。
所以你的建構函式也是沒有帶引數的,所以你不能這樣預設(a a2());
一定要帶引數才能這樣(如a a2(5)),總之得有引數才能這樣。
所以一般的建構函式都是過載過的,也就是說有幾個建構函式。
自己去體會吧!
C建構函式過載的問題,C建構函式和解構函式可以過載嗎
你那不叫重灌,叫語法錯誤。你在定義hujiaoqi類的時候已經實現建構函式的過載了,即一專個是無參的建構函式hujiaoqi 一個是有參的hujiaoqi int 類的建構函式只呼叫一次,而且不管有多少個建構函式,屬只會呼叫其中一個,並且是在定義物件的時候自動呼叫的,具體是呼叫哪個根據定義物件時傳入...
c當建構函式失敗時建構函式內部怎麼處理
1 建構函式想通知外部自己構造失敗,只有拋異常這一個途徑 沒有返回值 2 如果不拋異常,那麼建構函式執行完畢,從語言層面上編譯器認為該物件是正確構造了的,其實構造沒有按預想的進行,所以需要用狀態變數 建構函式引用引數就可以讓外界可以知道構造失敗了。3.如果拋異常標識構造失敗,那麼,所有已經構造好的基...
c 拷貝建構函式的細節問題
拷貝建構函式也是要你自己實現的阿,所以你要自己進行變數賦值了。如果你自己不實現,就給你一個預設的實現,就是所有資料拷過去。拷貝建構函式和賦值操作符不一樣,前者是新建物件,後者是賦值給已有物件。如果你不過載 操作符,編譯器也是給你一個預設的實現,就是把所有資料拷過去。第一個問題,拷貝建構函式函式體的構...