#include <iostream>
#include <cstring>
using namespace std;
class my_string
{
private:
char *str;
int len;
public:
my_string()
{
this->str=NULL;
this->len=0;
} //无参构造
my_string(char* s)
{
int l=strlen(s);
this->str=new char[l];
this->len=l+1;
strcpy(this->str,s);
cout<<"str:"<<s<<endl;
} //有参构造
my_string(const my_string& s)
{
this->str=new char[s.len];
this->len=s.len;
strcpy(this->str,s.str);
cout<<"str:"<<this->str<<endl;
}//拷贝构造
my_string& operator=(const my_string& s)
{
if(this != &s)
{
this->str=new char[s.len];
this->len=s.len;
strcpy(this->str,s.str);
cout<<"str:"<<this->str<<endl;
}
return *this;
}//拷贝赋值
bool my_empty()
{
if(len==0)
{
return true;
}else{
return false;
}
}
//bool my_empty() 判空
//int my_size() 求长度
//char *my_str() 转化为C风格字符串
};
int main()
{
my_string m1();
my_string m2("abcd");
my_string m3(m2);
my_string m4("dcba");
m4=m3;
cout<<"this m2:";
if(m2.my_empty())
{
cout<<"true"<<endl;
}else{
cout<<"flase"<<endl;
}
cout << "Hello World!" << endl;
return 0;
}
代码实现: