亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++對象的淺復制和深復制詳解及簡單實例

2020-05-23 13:47:52
字體:
來源:轉載
供稿:網友

C++對象的淺復制和深復制詳解及簡單實例

淺復制:兩個對象復制完成后共享某些資源(內存),其中一個對象的銷毀會影響另一個對象

深復制:兩個對象復制完成后不會共享任何資源,其中一個對象的銷毀不會影響另一個對象

下面我們來看一段代碼,以便直觀的理解:

#include<iostream> #include<string.h> using namespace std; class Student {   int no;   char *pname; public:   Student();   Student(int n,char* p);   ~Student();   void display(); };  Student::Student(){}  Student::Student(int n,char* p) {   no=n;   pname=new char[10];   strcpy(pname,p); }  Student::~Student() {   delete []pname; }  void Student::display() {   cout<<"學號:"<<no<<",姓名:"<<pname<<endl; }  void main() {   Student s(10,"xiaoming"),t;   t=s;   cout<<"s=";   s.display();   cout<<"t=";   t.display(); } 

這段程序看上去是正確的,但是執行就會出錯,原因就是復制語句t=s,此語句執行的復制是淺復制,s將pname指針指向的地址賦給s的pname,它們就會指向相同的內存空間,當t被析構時,t.pname所指的內存空間就被釋放了,再執行s的析構函數就會出錯。

如果采用深復制就可以避免這個問題,下面我們用運算符重載函數實現深復制:

Student& Student::operator = (Student& s) {   no=s.no;   int len=strlen(s.pname);   pname=new char[len+1];   strcpy(pname,s.pname);   return *this; } 

在執行t=s時,運算符重載函數內已為t分配內存空間。

對于上述運算符重載函數有兩點說明:

1.形參一定要是引用類型,否則執行t=s時,就要先將實參s復制到形參s,這個過程是淺復制,沒有為形參s分配內存空間,運行會出錯;

2.返回值一定要是引用類型,因為執行t=s相當于執行t.=(s),若返回值不是引用類型,那么還要將函數的返回對象復制到t,又會出錯

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97视频在线观看免费高清完整版在线观看| 日韩美女视频在线观看| 久久久精品国产网站| 精品毛片三在线观看| 黄色成人在线免费| 97国产suv精品一区二区62| 国产精品aaa| 日本精品一区二区三区在线| 91九色国产社区在线观看| 国产亚洲精品美女| 激情懂色av一区av二区av| 国产精品自产拍在线观看| 久久视频在线免费观看| 欧美劲爆第一页| 亚洲国产精品久久久久| 久久久国产在线视频| 日韩精品免费在线视频| 美日韩精品免费观看视频| 中文字幕欧美视频在线| 欧美精品一区二区免费| 在线播放日韩精品| 久久久av网站| 国产精品igao视频| 成人中文字幕在线观看| 亚洲在线免费观看| 国产精品久久久久久久久久久新郎| 亚洲第一精品福利| 亚洲精品999| 热99精品里视频精品| 国产欧美最新羞羞视频在线观看| 欧美激情高清视频| 日韩一区视频在线| 国产在线播放91| 欧美日韩亚洲高清| 亚洲精品在线观看www| 成人av在线网址| 国产精品激情自拍| 日韩美女av在线免费观看| 国产精品video| 91精品在线看| 久久精品国产96久久久香蕉| 亚洲激情免费观看| 国产成人精品免高潮在线观看| 97视频在线观看亚洲| 亚洲va码欧洲m码| 久久黄色av网站| 欧美午夜丰满在线18影院| 国产精品影院在线观看| 国产精品羞羞答答| 国产精品视频中文字幕91| 亚洲国产精品嫩草影院久久| 国产精品jvid在线观看蜜臀| 成人激情电影一区二区| 97在线视频免费播放| 久久久久久久国产精品视频| 中文字幕亚洲一区二区三区五十路| 欧美成年人在线观看| 欧美激情精品久久久久久大尺度| 亚洲欧美一区二区三区久久| 国产日本欧美在线观看| 日韩视频―中文字幕| y97精品国产97久久久久久| 久久免费成人精品视频| 97久久精品视频| 日韩欧美在线免费观看| 久久久精品一区二区| 久久免费成人精品视频| 欧美大码xxxx| 国产亚洲激情视频在线| 亚洲欧美综合精品久久成人| 日本sm极度另类视频| 欧美电影免费观看高清| 日韩欧美a级成人黄色| 欧美黑人视频一区| 亚洲天堂成人在线视频| 91精品久久久久久久久不口人| 国产精品视频男人的天堂| 亚洲视频免费一区| 97视频在线观看视频免费视频| 81精品国产乱码久久久久久| 国产ts一区二区| 中文字幕少妇一区二区三区| 欧美日韩国产成人| 国产精品青草久久久久福利99| 日本精品一区二区三区在线播放视频| 中文字幕欧美视频在线| 亚洲久久久久久久久久| 57pao成人永久免费视频| 国产成人精品优优av| 欧美激情欧美激情在线五月| 亚洲精品国产suv| 欧美做爰性生交视频| 国产精品一区二区三区久久| 欧美又大又硬又粗bbbbb| 久久精品在线视频| 97超碰国产精品女人人人爽| 亚洲91精品在线| 精品亚洲一区二区三区在线观看| 亚洲国产日韩欧美在线图片| 4444欧美成人kkkk| 亚洲开心激情网| 一区二区欧美日韩视频| 国语自产精品视频在免费| 夜夜狂射影院欧美极品| 亚洲桃花岛网站| 日韩在线观看免费高清完整版| 奇米成人av国产一区二区三区| 亚洲一区二区三区在线视频| 91精品视频在线免费观看| 精品欧美aⅴ在线网站| 欧洲一区二区视频| 精品久久久久久久久国产字幕| 一区二区三区四区精品| 91久久精品国产91性色| 国产精品一区二区久久久| 亚洲精品xxxx| 国内精品模特av私拍在线观看| 国产精品大陆在线观看| 中文字幕欧美亚洲| 国产免费一区二区三区在线能观看| 久久影视免费观看| 亚洲永久在线观看| 亚洲人成网7777777国产| 精品美女久久久久久免费| 日韩成人中文电影| 国产一区欧美二区三区| 91视频国产精品| 九九热视频这里只有精品| 国产精品2018| 亚洲成**性毛茸茸| 羞羞色国产精品| 亚洲free性xxxx护士hd| 色妞欧美日韩在线| 91久久嫩草影院一区二区| 欧美日韩一二三四五区| 日本午夜精品理论片a级appf发布| 国产精品国产三级国产aⅴ9色| 欧美性生交xxxxxdddd| 性欧美xxxx交| 精品福利一区二区| 国产国产精品人在线视| 亚洲色图17p| 69**夜色精品国产69乱| 日韩美女免费视频| 91人成网站www| 久久精品夜夜夜夜夜久久| 日韩美女在线看| 久久精品国产2020观看福利| 98精品在线视频| 激情av一区二区| 国产精品xxx视频| 91精品视频大全| 538国产精品视频一区二区| 中文字幕亚洲激情| 欧美性xxxxx极品| 成人欧美一区二区三区在线| 久久这里只有精品99| 韩国福利视频一区| 91精品国产成人| 亚洲精品国产精品国自产在线| 国产精品69久久久久| 日韩亚洲在线观看| 美女精品久久久| 亚洲免费一级电影|