1樓:匿名使用者
當然是呼叫這個建構函式咯: string( const char*)你應該見過這樣的賦值吧 char* p_ch = "1234",沒錯,"1234"是指向堆(不是棧)中記憶體塊的乙個指標。其型別應該是char const *,被隱式轉換成了const char*。
string str1 = "fantuan";它實際過程是str1 = string("fantuan"),str1只是臨時物件的乙個拷貝。
加深下理解,如果你這樣寫:
string str1;
str1 = "fantuan";
那就相當於呼叫string()和operator = ( const char* )這兩個函式了。
明白了不?
不要感謝我,我叫雷鋒。
2樓:這個世界只有鬼
你在每乙個建構函式的實現裡面都加上乙個輸出語句,用來表明是哪個函式被呼叫了,這樣就一目了然了。
+運算子過載還需要乙個引數string operate+(string &s)
3樓:匿名使用者
你這個根本不能通過編譯的,沒有過載+
物件陣列初始化,物件陣列初始化(C )
95郭逗比 一 一維 int numbers new int 不定長 int numbers new int 3 定長 二 多維 int numbers new int 不定長 int numbers new int 2,2 定長 三 例子 a int mf1 new int 6 注意初始化陣列的範...
C 拷貝建構函式的問題,就是用類物件初始化另類物件時,會自動呼叫建構函式
亥凝思 你用的vc 編譯的吧?vc的特點就是對於指標,如果沒顯示的初始化為null,會預設指向位址為cccccccc 的記憶體,你換成別的編譯器實施就知道。c 中,如果建構函式沒有預設值,物件也沒有引數賦值過去,那麼定義類的物件,呼叫建構函式時會出錯嗎 影者東昇 不會的。c 類的建構函式詳解 一 建...
cc通過初始化列表和建構函式內賦值初始化成員
周生 看你的成員變數型別和繼承方式了,公有成員變數和公有繼承,直接賦值就行了。私有成員變數,繼承之後要在初始化列表中初始化 初始化表的必要性 1 類中包含常量和引用型的成員變數。必須通過建構函式和初始化表顯式地對其進行初始化。2 在子類中顯式地構造其基類部分。class a a int n m n ...