乙個c語言構造函式呼叫的問題(有趣)

2021-09-05 13:47:32 字數 550 閱讀 8646

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 ...