国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php中拷貝構(gòu)造函數(shù)、賦值運算符重載

2024-05-04 23:14:19
字體:
供稿:網(wǎng)友
對象的賦值與復(fù)制: 賦值:通過“ = ”運算符重載
User a(10),b;
b = a;
復(fù)制:調(diào)用復(fù)制構(gòu)造函數(shù)
User b;
User a(b);
或者
User a = b;//相當(dāng)于User a(b);
與賦值的區(qū)別,賦值是對一個已經(jīng)存在的對象進行賦值(已經(jīng)實現(xiàn)定義了被賦值的對象),而復(fù)制是從無到有建立一個新的對象,并使它與已有的對象相同。
淺復(fù)制與深復(fù)制: 若對象中有指針成員,在復(fù)制時,只會將該指針成員的地址復(fù)制給新建立的對象,因此,兩個對象中的指針成員都指向了同一塊內(nèi)存區(qū)域,在釋放時會出現(xiàn)重復(fù)釋放的問題。 需要手動定義復(fù)制構(gòu)造函數(shù),在構(gòu)造函數(shù)中將為指針變量分配新的內(nèi)存,是不同對象的指針成員指向不同的內(nèi)存區(qū)域。
用到拷貝構(gòu)造函數(shù)的三種情況: 1、需要建立一個新對象,并用另一個同類對象對其進行初始化 2、函數(shù)的參數(shù)為類的對象時,在調(diào)用函數(shù)時需要建立一個實參的拷貝,按實參復(fù)制一個形參,系統(tǒng)是通過調(diào)用拷貝構(gòu)造函數(shù)實現(xiàn)的 3、函數(shù)的返回值是類的對象:函數(shù)調(diào)用結(jié)束時,需要將函數(shù)中的對象復(fù)制一個臨時對象,并傳給該函數(shù)的調(diào)用處。

復(fù)制代碼 代碼如下:


User getUser()

User temp; 
return temp;
}
int main()

User user = getUser();//調(diào)用getUser();
}


getUser()函數(shù)調(diào)用結(jié)束時,getUser中建立的對象temp的生命周期結(jié)束(即將銷毀),所以不是將temp帶回main,而是在執(zhí)行return語句時,調(diào)用User類的拷貝構(gòu)造函數(shù),按temp拷貝一個新的、對象,然后將它賦值給user.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦城县| 饶河县| 霍山县| 抚松县| 托里县| 横山县| 左权县| 厦门市| 永定县| 中江县| 大兴区| 沛县| 丹江口市| 乌恰县| 景东| 楚雄市| 仁怀市| 柏乡县| 遵化市| 富川| 和硕县| 陇川县| 延安市| 昌邑市| 潍坊市| 天等县| 文山县| 湘潭市| 稻城县| 龙陵县| 喜德县| 塔河县| 宁河县| 邻水| 永州市| 张家港市| 分宜县| 平塘县| 奎屯市| 盐津县| 漳州市|