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

首頁 > 開發 > PHP > 正文

php拷貝構造函數、賦值運算符重載

2024-05-04 21:53:00
字體:
來源:轉載
供稿:網友

對象的賦值與復制: 賦值:通過“ = ”運算符重載

User a(10),b;

b = a;

復制:調用復制構造函數

User b;

User a(b);

或者

User a = b;//相當于User a(b);

與賦值的區別,賦值是對一個已經存在的對象進行賦值(已經實現定義了被賦值的對象),而復制是從無到有建立一個新的對象,并使它與已有的對象相同。

淺復制與深復制: 若對象中有指針成員,在復制時,只會將該指針成員的地址復制給新建立的對象,因此,兩個對象中的指針成員都指向了同一塊內存區域,在釋放時會出現重復釋放的問題。 需要手動定義復制構造函數,在構造函數中將為指針變量分配新的內存,是不同對象的指針成員指向不同的內存區域。

用到拷貝構造函數的三種情況: 1、需要建立一個新對象,并用另一個同類對象對其進行初始化 2、函數的參數為類的對象時,在調用函數時需要建立一個實參的拷貝,按實參復制一個形參,系統是通過調用拷貝構造函數實現的 3、函數的返回值是類的對象:函數調用結束時,需要將函數中的對象復制一個臨時對象,并傳給該函數的調用處。

User getUser()

{  

User temp;  

return temp;

}

int main()

{  

User user = getUser();//調用getUser();

}

getUser()函數調用結束時,getUser中建立的對象temp的生命周期結束(即將銷毀),所以不是將temp帶回main,而是在執行return語句時,調用User類的拷貝構造函數,按temp拷貝一個新的、對象,然后將它賦值給user.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东城区| 太原市| 武功县| 万源市| 澄迈县| 静安区| 哈密市| 乳源| 五大连池市| 衡山县| 上思县| 革吉县| 湟中县| 阜南县| 中西区| 闽侯县| 台南市| 张家港市| 汉寿县| 南皮县| 平潭县| 利津县| 丰县| 靖边县| 福泉市| 旬阳县| 安吉县| 敦化市| 塔城市| 涿州市| 夏河县| 阜平县| 扬中市| 曲阜市| 固安县| 深州市| 罗江县| 兴山县| 金华市| 南阳市| 红桥区|