一个string类的简单实现案例
string类中使用到了赋值构造函数、复制构造函数、构造函数、默认构造函数、析构函数、重载操作符等一些类操作
classString { public: String() { data=newchar[1];//这里为什么使用newchar[1]呢,虽然是一个字符,这是为了和析构函数保持对称,因为在别的构造函数中使用的char[] data[0]='\0'; length=0; } String(constchar*str) { length=strlen(str); data=newchar[length+1]; strcpy(data,str); data[length]='\0'; } String(constchar*str,intn) { length=n; data=newchar[n+1]; strncpy(data,str,n); data[length]='\0'; } String(constString&src)//拷贝构造函数也就是复制构造函数 { length=src.length; data=newchar[length+1]; strcpy(data,src.data); } String&operator=(constString&src)//赋值构造函数 { if(this==&src) return*this; delete[]data; data=newchar[src.length+1]; strcpy(data,src.data); return*this; } String&operator=(constchar*src)//另一种的赋值构造函数 { delete[]data; length=strlen(src); data=newchar[length+1]; strcpy(data,src); return*this; } char&operator[](intn) { returndata[n]; } constchar&operator[](intn)const//对于const成员函数最好就是返回const的引用,这样是为了避免返回值被修改 { returndata[n]; } friend ostream&operator<<(ostream&os,constString&st); ~String() { delete[]data; } private: char*data; intlength; }; ostream&operator<<(ostream&os,constString&st) { os<<st.data; returnos; }
以上这篇一个string类的简单实现案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。