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

首頁 > 學院 > 開發設計 > 正文

學習筆記.錯誤整理 拷貝構造函數的重要性

2019-11-14 11:54:44
字體:
來源:轉載
供稿:網友

  今天在學習時隨手編了一個小程序, 然而運行時卻發現總在出錯,而且每次的斷電都顯示在析構函數的delete 一行。起初時時百思不得,后來才發現問題所在,自我反思后覺得這是一個對我這樣的初學者來講很重要的問題。   問題出在PRint函數上是很明顯的,但到底是什么原因呢?#include<iostream>using namespace std;class Person{public :	Person()	{		name = NULL;		cout << "Default consturctor called!/n/n";	}	Person(char *str)	{		name = new char [strlen(str) + 1];		strcpy_s(name, strlen(str) + 1, str);		cout << "Consturctor called!/n/n";	}		~Person()	{		delete[] name;//斷點總在此處		cout << "Destructor called!/n/n";	}	friend ostream& Operator << (ostream& out, Person &A)	{		out << A.name << endl;		return out;	}	friend istream& operator >> (istream& in, Person &A)	{		char temp[10];		in.getline(temp, 10);		int len = strlen(temp) + 1;		A.name = new char[len];		strcpy_s(A.name, len, temp);		return in;	}	friend void Print(Person a)	{		cout << a.name << endl;	}private :	char *name;};int main(){	Person a("mike");	//cin >> a;	Print(a);	//cout << a;	system("pause");	return 0;} 

  關鍵在于深淺拷貝的問題,這里可以看到在Print函數中傳過去的是一個對象,要命就要命在成員中有一個指針。   我們知道, C++中將對象作為參數時,并非將對象直接傳過去,而是調用拷貝構造函數傳過去一個對象的副本。而在函數結束后調用析構函數。當函數中沒有定義拷貝構造函數時,就會調用默認的拷貝構造函數。但不幸的是這個默認的函數采用的是“淺拷貝”,也就是說它僅僅將指針本身的值復制過去。造成的后果是兩個指針指向同一處,這樣在函數結束后調用析構函數釋放該處內存空間, 在程序結束后又是釋放一次,自然就導致了錯誤。   解決方法很簡單,定義一個拷貝構造函數就行了。

Person(const Person &a)	{		name = new char[strlen(a.name) + 1];		strcpy_s(name, strlen(a.name) + 1, a.name);		cout << "Copy constructor called!/n/n";	}由此可以得到一個教訓:當成員中含指針是, 必須要自定義拷貝構造函數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
这里只有精品视频在线| 久久福利视频导航| 久久久视频免费观看| 久久精品中文字幕| 在线不卡国产精品| 国产精品入口夜色视频大尺度| 成人写真福利网| 中文字幕日韩在线视频| 精品久久久久久久久久久久| 91亚洲va在线va天堂va国| 国产精品麻豆va在线播放| 91在线视频九色| 78m国产成人精品视频| 久久久97精品| 成人免费大片黄在线播放| 日韩精品视频在线观看网址| 欧美亚州一区二区三区| 成人黄色免费在线观看| 国产91热爆ts人妖在线| 性欧美亚洲xxxx乳在线观看| 国产欧美日韩丝袜精品一区| 国内揄拍国内精品少妇国语| 亚洲第一男人天堂| 久久久噜噜噜久久| 91国内精品久久| 亚洲乱码一区av黑人高潮| 欧美性xxxxhd| 成人国产精品色哟哟| 亚洲免费视频一区二区| 98精品国产自产在线观看| 高清一区二区三区四区五区| 亚洲精品电影在线| 在线观看国产精品91| 成人国产精品一区二区| 亚洲欧洲中文天堂| 色综合导航网站| 亚洲三级免费看| 亚洲美女精品久久| 亚洲成人久久网| 精品亚洲永久免费精品| 国产精品久久久久久久久久久新郎| 欧美激情亚洲激情| 高跟丝袜欧美一区| 中文字幕亚洲一区二区三区| 国产在线98福利播放视频| 91深夜福利视频| 亚洲品质视频自拍网| 欧美电影免费观看电视剧大全| 中文字幕亚洲综合久久筱田步美| 日韩精品在线观看视频| 欧美精品久久久久久久久| 欧美激情视频网址| 国产精品第一视频| 精品动漫一区二区| 久久露脸国产精品| 91在线免费网站| 欧美成人亚洲成人| 亚洲综合色激情五月| 一本一道久久a久久精品逆3p| 国产精品福利无圣光在线一区| 亚洲欧美一区二区三区久久| 91精品视频免费| 久久久久久国产三级电影| 尤物yw午夜国产精品视频明星| 欧美限制级电影在线观看| 欧美亚洲一级片| 欧美成aaa人片免费看| 欧美一区视频在线| 琪琪第一精品导航| 97视频在线观看免费高清完整版在线观看| 国产精品欧美一区二区| 日韩激情在线视频| 俺去啦;欧美日韩| 成人www视频在线观看| 国产精品久久久久77777| 日韩电影免费观看在线| 日韩av在线网站| 欧美高清videos高潮hd| 国产亚洲欧洲在线| 久久伊人免费视频| 国产美女扒开尿口久久久| 最近中文字幕mv在线一区二区三区四区| 疯狂蹂躏欧美一区二区精品| 日韩精品中文字幕有码专区| 欧美成人精品h版在线观看| 亚洲精品久久久久久久久久久久| 亚洲天堂av网| 日韩在线观看成人| 久久手机免费视频| 在线成人激情黄色| 国产精品网红福利| 亚洲午夜精品视频| 一区二区三区回区在观看免费视频| 精品亚洲va在线va天堂资源站| 精品国产一区二区在线| 2019国产精品自在线拍国产不卡| 久久精品国产清自在天天线| www.国产精品一二区| 亚洲另类激情图| 久久久中精品2020中文| 国产精品一区二区三区成人| 亚洲国产欧美在线成人app| 色综合天天狠天天透天天伊人| 欧美黑人一区二区三区| 久久久久久久久久久人体| 国语自产精品视频在线看| 久久视频在线免费观看| 欧美大码xxxx| 亚洲精品456在线播放狼人| 国产精品自拍小视频| 国产玖玖精品视频| 69久久夜色精品国产69| 国产成人鲁鲁免费视频a| 久久久亚洲国产| 国产精品久久久亚洲| 亚洲成人免费在线视频| 欧美一区在线直播| 亚洲日本欧美日韩高观看| 精品久久久一区二区| 2021久久精品国产99国产精品| 亚洲成人精品在线| 一本大道香蕉久在线播放29| 久久久999成人| 亚洲天堂网在线观看| 91亚洲精品在线| 欧美激情奇米色| 国产伦精品一区二区三区精品视频| 欧美极品少妇xxxxⅹ喷水| 色综合久久天天综线观看| 国产精品久久久久久久久免费| 国产成人avxxxxx在线看| 国产精品偷伦视频免费观看国产| 久久久久久亚洲精品不卡| 青青久久aⅴ北条麻妃| 日韩精品免费综合视频在线播放| 成人性教育视频在线观看| 78m国产成人精品视频| 国产日韩精品电影| 国产一区二中文字幕在线看| 日韩欧美高清视频| 91极品女神在线| 欧美俄罗斯乱妇| 久久伊人精品视频| 国产999视频| 亚洲欧美在线x视频| 狠狠色香婷婷久久亚洲精品| 91久久精品国产| 精品国产户外野外| 欧美成人黑人xx视频免费观看| 91探花福利精品国产自产在线| 91高清免费视频| 亚洲一区中文字幕在线观看| 热久久视久久精品18亚洲精品| 精品视频9999| 国产精品精品久久久| 日韩精品小视频| 日韩在线观看免费全| 九九九久久国产免费| 国产精品专区h在线观看| 成人性生交大片免费看视频直播| 日韩欧美在线中文字幕| 一区二区三区精品99久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美黑人狂野猛交老妇|