我在由參考和值到特定類的功能通過對象之間的差異混淆。如果我按值傳遞對象,我知道默認的拷貝構造函數使得對象的成員由成員副本在給定的功能使用。但是,如果我將對象作爲需要深度複製的類的const引用傳遞,複製構造函數是否仍然被調用?說我有一個功能構造函數調用和物體通過
void debug(const MyClass& object1);
會通過object1調用複製構造函數嗎?或者是對象直接傳遞給函數而沒有創建副本?還有一個問題 - 如果我有一個叫Fraction-
類 Fraction A(1,2); // 1 is this numerator, 2 the denominator
A = Fraction(2,3);
是否在上述行調用默認構造函數來創建一個臨時目標級(2,3),然後賦值運算符?
謝謝。
對不起,我不是很明確。我真的想知道是否調用構造函數來構造臨時對象Fraction(2,3),然後通過默認賦值運算符將其分配給A. – jonnywalkerr 2013-03-25 02:29:14