String的功能有哪些?
class CxString
{
char *str;
public:
CxString(const char *string = "")
CxString(const CxString& that)
CxString& operator=(const CxString& that)
~CxString()
}
代码实现
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
class CxString
{
char *str;
public:
CxString(const char *string = "")
{
cout << "构造函数 被调用了" << endl;
str = new char[strlen(string)+1];
strcpy(str, string);
}
CxString(const CxString &that)
{
cout << "拷贝构造函数 被调用了" << endl;
str = new char[strlen(that.str)+1];
strcpy(str, that.str);
}
CxString& operator=(const CxString &that)
{
cout << "赋值函数 被调用了" << endl;
if(this != &that)
{
delete[] str;
str = new char[strlen(that.str)+1];
strcpy(str, that.str);
}
return *this;
}
void show(void)
{
cout << str << endl;
}
~CxString()
{
cout << "析构函数 被调用了" << endl;
printf("%p\n",str);
delete[] str;
}
};
int main(int argc,const char* argv[])
{
CxString str1("123456");
str1.show();
CxString str2 = str1;
str2.show();
CxString str3("987654");
str3.show();
str3 = str2;
str3.show();
CxString str4 = "789101112";
str4.show();
cout << " END" << endl;
}