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

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:48:19
字體:
來源:轉載
供稿:網友

本文章詳細的介紹了關于php中拷貝構造函數、賦值運算符重載詳解,有需要了解的同學可參考一下下哦.

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

實例代碼如下:

  1. User a(10),b; 
  2. b = a; 

復制:調用復制構造函數

  1. User b; 
  2. User a(b); 

或者

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

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

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

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

實例代碼如下:

  1. User getUser() 
  2. {  
  3. User temp;  
  4. return temp; 
  5. int main() 
  6. {  
  7. User user = getUser();//調用getUser(); 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴隆县| 雅江县| 石泉县| 宝鸡市| 宽城| 微山县| 垫江县| 南涧| 延庆县| 商水县| 依兰县| 锡林浩特市| 清涧县| 保定市| 穆棱市| 嵊泗县| 海盐县| 东阳市| 徐闻县| 大化| 扎兰屯市| 鲁山县| 通山县| 湖州市| 专栏| 呼和浩特市| 云龙县| 兴业县| 乐平市| 永城市| 芦溪县| 从化市| 济阳县| 沾益县| 阿尔山市| 玉树县| 浙江省| 辉南县| 南岸区| 广汉市| 鄂伦春自治旗|