模拟实现C++ string类(构造、析构、拷贝、赋值运算符重载)

本文探讨如何在C++中模拟实现string类的关键成员函数,包括构造函数、析构函数、拷贝构造函数和赋值运算符重载。通过详细解释拷贝构造和赋值运算符的实现过程,揭示深浅拷贝的原理。
摘要由CSDN通过智能技术生成

        在面试过程中,如果要让写一个string类的模拟,那么,面试官多半是想考你关于深浅拷贝的某些知识。

        对于string类的实现来说,比较重要的几个成员函数,也就是构造函数、析构函数、拷贝构造函数、赋值运算符重载等等,再次,我只先实现这几个。其中拷贝构造和赋值运算符的重载有其他方法,我将在后边附上写出来。

        废话不多,直接上程序:

<pre name="code" class="cpp">class String
{
public:
	char* _pstr;
public:
	String(char* pstr="")//构造函数
	{
		if (pstr == NULL)
		{
                        _pstr = new char[1];
			*_pstr = '\0';
		}
		else
		{
			_pstr = new char[strlen(pstr) + 1];
			strcpy(_pstr,pstr);
		}
	}
	String(const String&s)//拷贝构造函数
	{
		_pstr = new char[strlen(s._pstr) + 1];
		strcpy(_pstr, s._pstr);
	}
	~String()//析构函数
	{
		if (_pstr)
		{
			delete[] _pstr;
		}
	}
	String& operator = (const String& s)//赋值运算符重载
	{
		if (this != &s)
		{
			char *pstr = new char[strlen(s._pstr) + 1];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值