15)對于拷貝構(gòu)造函數(shù)和賦值操作的關(guān)系,正確的是
A)拷貝構(gòu)造函數(shù)和賦值操作是完全一樣的操作
B)進(jìn)行賦值操作時,會調(diào)用類的構(gòu)造函數(shù)
C)當(dāng)調(diào)用拷貝構(gòu)造函數(shù)時,類的對象正在被建立并被初始化
D)拷貝構(gòu)造函數(shù)和賦值操作不能在同一個類中被同時定義
參考答案:(15)C【解析】在賦值操作中,將發(fā)生對象的拷貝操作,但并不說明兩者是完全一樣的。一般情況下, 如果給類定義了賦值操作符,則應(yīng)該同時定義合適的拷貝構(gòu)造函數(shù),除非系統(tǒng)默認(rèn)生成的拷貝構(gòu)造 函數(shù)滿足賦值操作。實際上,系統(tǒng)默認(rèn)的拷貝構(gòu)造函數(shù)僅僅將數(shù)據(jù)成員進(jìn)行簡單的對應(yīng)賦值,而在 多數(shù)特殊應(yīng)用中,這么簡單的對應(yīng)關(guān)系是不適用的.這就需要程序員重新定義拷貝構(gòu)造函數(shù)。
A)拷貝構(gòu)造函數(shù)和賦值操作是完全一樣的操作
B)進(jìn)行賦值操作時,會調(diào)用類的構(gòu)造函數(shù)
C)當(dāng)調(diào)用拷貝構(gòu)造函數(shù)時,類的對象正在被建立并被初始化
D)拷貝構(gòu)造函數(shù)和賦值操作不能在同一個類中被同時定義
參考答案:(15)C【解析】在賦值操作中,將發(fā)生對象的拷貝操作,但并不說明兩者是完全一樣的。一般情況下, 如果給類定義了賦值操作符,則應(yīng)該同時定義合適的拷貝構(gòu)造函數(shù),除非系統(tǒng)默認(rèn)生成的拷貝構(gòu)造 函數(shù)滿足賦值操作。實際上,系統(tǒng)默認(rèn)的拷貝構(gòu)造函數(shù)僅僅將數(shù)據(jù)成員進(jìn)行簡單的對應(yīng)賦值,而在 多數(shù)特殊應(yīng)用中,這么簡單的對應(yīng)關(guān)系是不適用的.這就需要程序員重新定義拷貝構(gòu)造函數(shù)。