参考string类完成my_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 = 15;
this->str = new char[len];
memset(str,0,15);
strcpy(str,p);
cout<<"有参构造"<<endl;
}
//拷贝构造
my_string(const my_string &other)
{
len=15;
this->str=new char[len];
memset(str,0,15);
strcpy(str,other.str);
}
//拷贝赋值
my_string &operator=(const my_string &other)
{
if(&other !=this)
{
len=15;
this->str=new char[len];
memset(str,0,15);
strcpy(str,other.str);
}
}
//析构函数
~my_string()
{
delete str;
cout<<"析构函数"<<" "<<this<<endl;
}
void show()
{
cout<<str<<endl;
}
//判空
bool empty()
{
if(*str==0)
{
return true;
}
else
{
return false;
}
}
//求总长度
int size()
{
int l=0;
char *q=str;
while(*q!=0)
{l++;
q++;
}
return l;
}
//at()
char &at(int pos){}
//转c风格字符串函数
char *c_str(){};
};
int main()
{
char * p ="hello" ;
my_string s1;
my_string s2(p);
s2.show();
my_string s4(s2);
s4.show();
my_string s5;
s5=s4;
s5.show();
cout<<s5.size()<<endl;
return 0;
}