中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

string類的深淺拷貝問題

發布時間:2020-07-09 23:05:17 來源:網絡 閱讀:271 作者:稻草陽光L 欄目:開發技術

  字符串是我們在編寫程序的時候經常用的到的。C++庫已經幫我們實現了一個功能更加強大的字符串類string,我們要去了解它是怎么實現的。

  只要是涉及到 string類的地方多少都會涉及到深淺拷貝的問題。在C++中,在用一個對象初始化另一個對象時,只復制了成員,并沒有復制資源,使兩個對象同時指向了同一資源的復制方式稱為淺復制。

      深拷貝是將指向內容復制到給當前對象新分配的緩沖區中的一種復制方式。

    下面就是自己實現的深拷貝string類:

#include<iostream>
#include<string.h>
using namespace std;
class String
{
public:
	String(const char* str="")
		:_str(new char[strlen(str)+1])
	{
		strcpy(_str, str);
	}
	//深拷貝
	String(const String& s)
		:_str(new char[strlen(s._str)+1])
	{
		strcpy(_str, s._str);
	}
	String& operator=(const String& s)
	{
		if (this != &s)
		{
			delete[] _str;
			_str = new char[strlen(s._str) + 1];
			strcpy(_str, s._str);
		}
		return *this;
	}
	////現代寫法
	//String(const String& s)
	//	:_str(NULL)
	//{
	//	String tmp(s._str);
	//	swap(tmp._str,_str);
	//}
	//String& operator=(const String& s)
	//{
	//	if (this != &s)
	//	{
	//		_str = NULL;
	//		String tmp(s);
	//		swap(tmp._str, _str);
	//	}
	//	return *this;
	//}
private:
	char* _str;
};


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尉犁县| 定安县| 浑源县| 西贡区| 无棣县| 汶上县| 罗山县| 松阳县| 石首市| 彰武县| 新绛县| 高陵县| 丹阳市| 丰宁| 大英县| 泸定县| 鄢陵县| 土默特左旗| 鄂温| 芷江| 名山县| 敖汉旗| 永兴县| 达拉特旗| 禹州市| 江城| 泰来县| 长沙市| 大连市| 南汇区| 阳信县| 唐河县| 永福县| 南阳市| 沁阳市| 兰溪市| 鄱阳县| 金堂县| 莱州市| 新干县| 左权县|