重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

一个string类的简单实现案例-创新互联

string类中使用到了赋值构造函数、复制构造函数、构造函数、默认构造函数、析构函数、重载操作符等一些类操作

成都创新互联公司专业提供成都棕树机房服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买成都棕树机房服务,并享受7*24小时金牌售后服务。
class String
{
	public:
		String()
		{
			data = new char[1];  //这里为什么使用new char[1]呢,虽然是一个字符,这是为了和析构函数保持对称,因为在别的构造函数中使用的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) //拷贝构造函数 也就是复制构造函数
		{
			length = src.length;
			data = new char[length+1];
			strcpy(data,src.data);
		}
		String& operator=(const String& src) //赋值构造函数
		{
			if(this == &src)
				return *this;
			delete [] data;
			data = new char[src.length+1];
			strcpy(data,src.data);
			return *this;
		}
		String& operator=(const char* src) //另一种的赋值构造函数
		{
			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  //对于const成员函数 最好就是返回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<

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:一个string类的简单实现案例-创新互联
当前URL:http://cqcxhl.com/article/gejds.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP