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

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

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

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

  今天在學習時隨手編了一個小程序, 然而運行時卻發現總在出錯,而且每次的斷電都顯示在析構函數的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极品女神在线| 久久69精品久久久久久国产越南| 久久成人在线视频| 国内免费精品永久在线视频| 琪琪亚洲精品午夜在线| 精品在线小视频| 精品国产精品自拍| 日韩精品在线观看一区二区| 精品国产一区二区三区在线观看| 黑人巨大精品欧美一区二区| 中文字幕日韩欧美在线视频| 最新国产精品拍自在线播放| 欧美国产日本在线| 精品亚洲一区二区三区在线播放| 性欧美激情精品| 亚洲日本中文字幕免费在线不卡| 欧美二区在线播放| 日韩欧美主播在线| 亚洲国产97在线精品一区| 91国偷自产一区二区三区的观看方式| 欧美丝袜第一区| 国产成人精品一区二区三区| 欧美在线一级va免费观看| 国产成人精品日本亚洲专区61| 中文字幕无线精品亚洲乱码一区| 91理论片午午论夜理片久久| 欧美高清视频一区二区| 欧美成人免费小视频| 久久久久久网址| 久久躁狠狠躁夜夜爽| 精品偷拍一区二区三区在线看| 国产精品久久av| 亚洲伦理中文字幕| 色多多国产成人永久免费网站| 亚洲性av在线| 九九久久久久99精品| 日本精品久久久久久久| 91夜夜未满十八勿入爽爽影院| 亚洲www永久成人夜色| 欧美日韩亚洲精品内裤| 日韩中文字幕欧美| 欧美激情在线观看视频| www.欧美视频| 日韩a**中文字幕| 欧美激情国产日韩精品一区18| 国产精品流白浆视频| 中文国产成人精品久久一| 26uuu亚洲国产精品| 欧美国产精品va在线观看| 欧美一级高清免费| 97欧美精品一区二区三区| 欧美人与物videos| 97精品久久久| 亚洲国产日韩一区| 日本欧美精品在线| 国产精品亚洲аv天堂网| 美乳少妇欧美精品| 上原亚衣av一区二区三区| 久久精品国产亚洲精品2020| 日本在线精品视频| 一区二区三区精品99久久| 不卡av日日日| 精品动漫一区二区三区| 68精品国产免费久久久久久婷婷| 中文字幕精品在线视频| 日韩免费观看高清| 国产精品亚洲一区二区三区| 色婷婷亚洲mv天堂mv在影片| 在线午夜精品自拍| 日韩高清电影免费观看完整| 国产精品永久免费观看| 久久中国妇女中文字幕| 红桃av永久久久| 96精品久久久久中文字幕| 亚洲成人精品久久久| 欧美精品日韩www.p站| 亚洲欧美中文字幕| 欧美精品18videos性欧美| 欧美一区二区大胆人体摄影专业网站| 91国自产精品中文字幕亚洲| 国产美女搞久久| 欧美精品www在线观看| 亚洲视频欧美视频| 欧美在线视频观看免费网站| 久久久噜噜噜久噜久久| 日韩欧美在线观看视频| 一区二区三区久久精品| 欧美大学生性色视频| 日韩av在线不卡| 欧美国产高跟鞋裸体秀xxxhd| 日韩免费视频在线观看| 国内久久久精品| 亚洲老头同性xxxxx| 欧美激情亚洲另类| 久久免费视频观看| 亚洲伊人久久综合| 亚洲第一区第一页| 亚洲欧美日韩精品久久| 亚洲缚视频在线观看| 国产精品久久久久久婷婷天堂| 欧美激情一级二级| 日日狠狠久久偷偷四色综合免费| 色偷偷综合社区| 国产热re99久久6国产精品| 国产精品对白刺激| 亚洲人成网站999久久久综合| 久久av红桃一区二区小说| 伦伦影院午夜日韩欧美限制| 久久精品91久久香蕉加勒比| 日韩国产中文字幕| 亚洲免费精彩视频| 欧美国产中文字幕| 红桃视频成人在线观看| 91精品国产高清自在线| 日韩中文在线不卡| 国产999视频| 国产97色在线| 亚洲aⅴ日韩av电影在线观看| 国产精品网站入口| 中文字幕欧美在线| 国产精品久久激情| 国产不卡精品视男人的天堂| 日韩在线欧美在线| 国产精品夜间视频香蕉| 国产+人+亚洲| 欧美日韩免费看| 国产精品大片wwwwww| 中文字幕成人在线| 亚洲裸体xxxx| 国产精品影片在线观看| 国产精品偷伦一区二区| 久久久久久网站| 国产精品久久久久久久久久新婚| 91九色国产社区在线观看| 亚洲精品丝袜日韩| 国产精品一区二区久久精品| 海角国产乱辈乱精品视频| 欧美人成在线视频| 日本欧美爱爱爱| 国产精品激情av电影在线观看| 欧美资源在线观看| 国产精品青青在线观看爽香蕉| 亚洲精品久久久一区二区三区| 亚洲色图偷窥自拍| 久久久噜噜噜久久中文字免| 日韩精品视频在线免费观看| 久久91亚洲精品中文字幕奶水| 亚洲精品电影久久久| 欧美激情亚洲综合一区| 91老司机在线| 亚洲国产精品人人爽夜夜爽| 欧美二区乱c黑人| 亚洲最大的成人网| 成人欧美一区二区三区在线湿哒哒| 91中文字幕在线| 成人精品久久久| 亚洲国产婷婷香蕉久久久久久| 久久精品国产欧美激情|