課程
/后端開發(fā)
/C++
/C++遠征之封裝篇(上)
int main(void)
{
Student stu1;
Student stu2=stu1;
Student stu3(stu1);
return 0;
}
2018-08-03
源自:C++遠征之封裝篇(上) 6-7
正在回答
有道理,可能你的重點是你認為它調(diào)用了構造函數(shù)
三、淺拷貝與深拷貝? ??1. 默認拷貝構造函數(shù)? ?很多時候在我們都不知道拷貝構造函數(shù)的情況下,傳遞對象給函數(shù)參數(shù)或者函數(shù)返回對象都能很好的進行,這是因為編譯器會給我們自動產(chǎn)生一個拷貝構造函數(shù),這就是“默認拷貝構造函數(shù)”,這個構造函數(shù)很簡單,僅僅使用“老對象”的數(shù)據(jù)成員的值對“新對象”的數(shù)據(jù)成員一一進行賦值,它一般具有以下形式:
Rect::Rect(const?Rect&?r) { ????width=r.width; ????height=r.height; } 這涉及到了淺拷貝和深拷貝。我也是百度的,我自己的理解就是像上次回答一樣,這個函數(shù)就只會初始化列表,沒有調(diào)用 構造函數(shù)里面的語句代碼。
慕運維9949243 提問者
因為啊 打印student那句代碼是寫在構造函數(shù)里面的,如果你沒有自己定義拷貝構造函數(shù),系統(tǒng)就會自動生成拷貝函數(shù),這個函數(shù)就只會初始化列表。里面是沒有cout那句代碼的,所以只會打印一個student。
舉報
封裝--面向?qū)ο蟮幕窘坛塘η髱椭』锇閭兗磳W即會
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-08-05
有道理,可能你的重點是你認為它調(diào)用了構造函數(shù)
三、淺拷貝與深拷貝
? ??1. 默認拷貝構造函數(shù)
? ?很多時候在我們都不知道拷貝構造函數(shù)的情況下,傳遞對象給函數(shù)參數(shù)或者函數(shù)返回對象都能很好的進行,這是因為編譯器會給我們自動產(chǎn)生一個拷貝構造函數(shù),這就是“默認拷貝構造函數(shù)”,這個構造函數(shù)很簡單,僅僅使用“老對象”的數(shù)據(jù)成員的值對“新對象”的數(shù)據(jù)成員一一進行賦值,它一般具有以下形式:
2018-08-04
因為啊 打印student那句代碼是寫在構造函數(shù)里面的,如果你沒有自己定義拷貝構造函數(shù),系統(tǒng)就會自動生成拷貝函數(shù),這個函數(shù)就只會初始化列表。里面是沒有cout那句代碼的,所以只會打印一個student。