string 部分功能实现
#include <iostream>
#include <cstring>
using namespace std;
class my_string
{
private:
char *str;
int len;
public:
//无参构造
my_string()
{
len=15;
str=new char[len];
cout<<"无参构造"<<endl;
}
//有参构造
my_string(char *p)
{
len = strlen(p);
str = new char[len];
for(int i=0;i<=len;i++)
{
str[i]=p[i];
}
cout<<"有参构造"<<endl;
//cout<<*str<<endl;
}
//拷贝构造
my_string(const my_string &other)
{
str = new char[other.len];
len = other.len;
for(int i=0;i<=len;i++)
{
str[i] = other.str[i];
}
cout<<"拷贝构造"<<endl;
}
//拷贝赋值
my_string &operator=(const my_string &other)
{
//str = new char[other.len];
len = other.len;
for(int i=0;i<=len;i++)
{
str[i] = other.str[i];
}
cout<<"拷贝赋值"<<endl;
return *this;
}
//析构函数
~my_string()
{
delete str;
cout<<"析构函数"<<endl;
}
char *c_str()
{
return str;
}
};
int main()
{
my_string s4;
my_string s1((char *)"hello");
my_string s2(s1);
#if 1
my_string s3;
s3=s2;
#else
my_string s3=s2;
#endif
cout<<s1.c_str()<<endl;
cout<<s2.c_str()<<endl;
cout<<s3.c_str()<<endl;
return 0;
}