真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

string類的深淺拷貝,寫時(shí)拷貝

string類的深淺拷貝,寫時(shí)拷貝

成都創(chuàng)新互聯(lián)專注于上城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供上城營銷型網(wǎng)站建設(shè),上城網(wǎng)站制作、上城網(wǎng)頁設(shè)計(jì)、上城網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造上城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供上城網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

淺拷貝:多個(gè)指針指向同一塊空間,多次析構(gòu)同一塊內(nèi)存空間,系統(tǒng)會(huì)崩潰。(淺拷貝就是值拷貝)

深拷貝:給指針開辟新的空間,把內(nèi)容拷貝進(jìn)去,每個(gè)指針都指向自己的內(nèi)存空間,析構(gòu)時(shí)不會(huì)內(nèi)存崩潰。

#include 
#include 
using namespace std;

class String
{
public:
	String(const char*str)
		:_str(new char [strlen(str)+1])
		{
			strcpy(_str,str);
		}
	//String(const String& str)   //淺拷貝
	//	:_str(str._str)
	//	{}
	//String &operator=(const String& str)  
	//{
	//	if(this!= &str)
	//	{
	//		_str = str._str;
	//	}
	//	return *this;
	//}
	String(const String& str)                //深拷貝
		:_str(new char[strlen(str._str)+1])
		{
			strcpy(_str,str._str);
		}
	String &operator=(const String& str)
	{
		if(this!=&str)
		{
			//delete[] _str;
			//_str=new char [strlen(str._str)+1];
			//strcpy(_str,str._str);
			_str=str._str;
		}
		return *this;
	}
	~String()
	{
		if(_str)
		{
			cout<<"~String()"<

寫時(shí)拷貝:會(huì)存在一個(gè)計(jì)數(shù)器,并且多個(gè)對(duì)象指向同一塊空間,每次創(chuàng)建一個(gè)新的對(duì)象時(shí)計(jì)數(shù)器加++,銷毀時(shí)計(jì)數(shù)器--,直到計(jì)數(shù)器count=0時(shí)析構(gòu)。

class String       
{
public:
	String(const char*str)
		:_str(new char [strlen(str)+1])
		,_count(1)
		{
			strcpy(_str,str);
		}
	String(const String& str)
		:_str(str._str)
	{
		_count++;
	}
	String &operator=(const String& str)  
	{
		if(this!= &str)
		{
			_str = str._str;
		}
		return *this;
	}
	~String()
	{
		if(--_count == 0)
		{
			cout<<"~String()"<            
            
                        
當(dāng)前文章:string類的深淺拷貝,寫時(shí)拷貝
文章起源:http://weahome.cn/article/poggps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部