最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一個(gè)string類(lèi)的簡(jiǎn)單實(shí)現(xiàn)案例

 更新時(shí)間:2017年01月09日 09:14:41   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇一個(gè)string類(lèi)的簡(jiǎn)單實(shí)現(xiàn)案例。小編覺(jué)得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

string類(lèi)中使用到了賦值構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)、構(gòu)造函數(shù)、默認(rèn)構(gòu)造函數(shù)、析構(gòu)函數(shù)、重載操作符等一些類(lèi)操作

class String
{
	public:
		String()
		{
			data = new char[1];  //這里為什么使用new char[1]呢,雖然是一個(gè)字符,這是為了和析構(gòu)函數(shù)保持對(duì)稱(chēng),因?yàn)樵趧e的構(gòu)造函數(shù)中使用的char[]
			data[0]='\0';
			length = 0;
		}
		String(const char* str)
		{
			length = strlen(str);
			data = new char[length+1];
			strcpy(data,str);
			data[length]='\0';
		}
		String(const char* str,int n)
		{
			length = n;
			data = new char[n+1];
			strncpy(data,str,n);
			data[length] ='\0';
		}
		String(const String& src) //拷貝構(gòu)造函數(shù) 也就是復(fù)制構(gòu)造函數(shù)
		{
			length = src.length;
			data = new char[length+1];
			strcpy(data,src.data);
		}
		String& operator=(const String& src) //賦值構(gòu)造函數(shù)
		{
			if(this == &src)
				return *this;
			delete [] data;
			data = new char[src.length+1];
			strcpy(data,src.data);
			return *this;
		}
		String& operator=(const char* src) //另一種的賦值構(gòu)造函數(shù)
		{
			delete [] data;
			length = strlen(src);
			data = new char[length+1];
			strcpy(data,src);
			return *this;
		}
		char& operator[](int n)
		{
			return data[n];
		}
		const char& operator[](int n) const  //對(duì)于const成員函數(shù) 最好就是返回const的引用,這樣是為了避免返回值被修改
		{
			return data[n];
		}
	friend	ostream& operator<<(ostream& os,const String& st); 
		 
		~String()
		{
			delete [] data;	
		}
	private:
		char* data;
		int length;	
};
ostream& operator<<(ostream& os,const String& st)
{
   os<<st.data;
  return os;
}

以上這篇一個(gè)string類(lèi)的簡(jiǎn)單實(shí)現(xiàn)案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++異步操作future和aysnc與function和bind

    C++異步操作future和aysnc與function和bind

    這篇文章主要介紹了C++異步操作future和aysnc與function和bind,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • C++?STL反向迭代器的實(shí)現(xiàn)

    C++?STL反向迭代器的實(shí)現(xiàn)

    本文主要介紹了C++?STL反向迭代器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 基于C/C++時(shí)間函數(shù)的使用詳解

    基于C/C++時(shí)間函數(shù)的使用詳解

    本篇文章是對(duì)C/C++時(shí)間函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Qt基于TCP實(shí)現(xiàn)客戶(hù)端與服務(wù)端的連接

    Qt基于TCP實(shí)現(xiàn)客戶(hù)端與服務(wù)端的連接

    這篇文章主要為大家詳細(xì)介紹了Qt基于TCP實(shí)現(xiàn)客戶(hù)端與服務(wù)端的連接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • c++11新增的便利算法實(shí)例分析

    c++11新增的便利算法實(shí)例分析

    這篇文章主要介紹了c++11新增的便利算法,主要有用于判斷、查找、數(shù)組、序列等的操作算法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09
  • C++小利器之std::bind參數(shù)綁定包裝器的使用詳解

    C++小利器之std::bind參數(shù)綁定包裝器的使用詳解

    從 C++11 開(kāi)始,標(biāo)準(zhǔn)庫(kù)提供了 std::bind 用于綁定函數(shù) f 和調(diào)用參數(shù),返回一個(gè)新可調(diào)用函數(shù)對(duì)象 fn,下面就跟隨小編一起深入了解一下std::bind的具體使用吧
    2023-12-12
  • C++設(shè)計(jì)模式之代理模式

    C++設(shè)計(jì)模式之代理模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之代理模式,本文講解了什么是代理模式、代理模式的使用場(chǎng)合、代理模式的實(shí)現(xiàn)代碼等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • C++泛型編程基本概念詳解

    C++泛型編程基本概念詳解

    這一篇介紹一下 C++ 編程中與面向?qū)ο蟛⒘械牧硪淮蠓种А盒途幊蹋@一篇主要介紹函數(shù)模板、類(lèi)模板和成員模板三大部分,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言版簡(jiǎn)單掃雷游戲

    C語(yǔ)言版簡(jiǎn)單掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版簡(jiǎn)單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++ I/O文件讀寫(xiě)操作的示例代碼

    C++ I/O文件讀寫(xiě)操作的示例代碼

    這篇文章主要介紹了C++ I/O文件讀寫(xiě)操作的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

乌拉特前旗| 平乡县| 山阳县| 巴林右旗| 汶上县| 蒲城县| 洛川县| 神木县| 都江堰市| 东源县| 荣昌县| 平昌县| 平舆县| 庄河市| 神木县| 阜南县| 新营市| 黄骅市| 江永县| 太康县| 巍山| 昌平区| 普定县| 灵石县| 临武县| 桓台县| 蒲城县| 深州市| 宿松县| 来宾市| 望奎县| 广安市| 房产| 乐山市| 寻甸| 兴仁县| 库车县| 岱山县| 郸城县| 自治县| 秀山|