char str="hello"; //这就是一个字符串,双引号括起来的就是一个字符串
class String
{
public:
String(const char* pStr="")
{
if (NULL == pStr)
{
_pStr = new char[1];
*_pStr = '\0'; //字符串是以"\0"为结束标志
}
else
{
_pStr = new char[strlen(pStr) + 1]; //strlen不会计算结束标志符"\0"但它也占了空间,因此要加 1
strcpy(_pStr, pStr);
}
}
String(const String& s)
:_pStr(s._pStr)
{}
String& operator=(const String& s)
{
if (this != &s) //先检测是不是自己给自己赋值
{
_pStr = s._pStr;
}
return *this;
}
~String()
{
if (_pStr)
{
delete[] _pStr;
_pStr = NULL;
}
}
private:
char* _pStr;
};
void TestFunc()
{
String s1("hello");
String s2(s1);
String s3;
s3 = s1;
}
int main()
{
TestFunc();
retutn 0;
}