class myclass001
myclass001(int i)
}; resolve:
myclass001 k1;//顯示myclass001
k1=1;//顯示myclass001-i
其實第二句相當於是在呼叫有int i的那個建構函式,實際上是在給那個建構函式賦值了i。
從而呼叫了myclass001(int i)。
如果寫乙個class test;
class test
;在myclass001之前。
然後改myclass001(int i)
為myclass001(test * tt)
則語句
myclass001 k1;
k1 = new test;
正確,明顯是把new test作為了引數傳入了。
宣告這物件的時候沒初始化引數,所以就呼叫了沒引數的那個建構函式構造完這個物件了。
第二行的賦值在等號兩邊型別不匹配,所以編譯器查詢有沒以右邊的資料型別為引數的建構函式,找到後當然是構造臨時物件再賦值啦。
C 類中乙個構造函式呼叫另乙個建構函式
class a a int aa,int bb,int cc 上面類中,已經有乙個建構函式,形參有兩個,我們又過載乙個有3個形參的建構函式,為了減少 量,就想著讓3個引數的構造函式呼叫2個引數的建構函式,然後在執行一些自己的 這就如同派生類先呼叫基類的同名函式,在執行自己特有的 這種機制如何實現呢?...
c 中構造函式呼叫另一建構函式的問題
題目如下 問下列 的列印結果為0嗎?include include using namespace std struct cls cls int main 我當時是這樣想的,建構函式就是為物件分配記憶體的過程,其主要目的就是為了對私有變數進行初始化,所以我就想乙個物件不能呼叫 兩次建構函式,即使這兩...
每日 C 基類構造呼叫純虛函式的乙個問題
我們來看下面的一段 class base virtual base virtual void test 0 void does class derived public base derived void test override 我們看到 base 中的構造函式呼叫類的 does 而 does ...