#include<iostream>
#include<string>
using namespace std;
class Mystring
{
private:
char *m_buf;
public:
Mystring(char *p=""):m_buf(p)
{
this->m_buf=new char[strlen(p)+1];
strcpy(m_buf,p);
}
Mystring(const Mystring &s)
{
m_buf=new char[strlen(s.m_buf)+1];
strcpy(m_buf,s.m_buf);
}
~Mystring()
{
delete []m_buf;
}
void show()const;
int Getlength()const;
void Copy(const Mystring &s);
Mystring Add(const Mystring &s);
};
void Mystring::show()const
{
cout<<this->m_buf<<endl;
}
int Mystring::Getlength()const
{
return strlen(this->m_buf);
}
void Mystring::Copy(const Mystring &s)
{
delete []m_buf;
m_buf=new char[s.Getlength()+1];
strcpy(m_buf,s.m_buf);
}
Mystring Mystring::Add(const Mystring &s)
{
//delete []m_buf;
Mystring r;
delete []r.m_buf;
r.m_buf=new char[s.Getlength()+this->Getlength()+1];
strcpy(r.m_buf,this->m_buf);
strcat(r.m_buf,s.m_buf);
return r;
}
void main()
{
Mystring m("hello");
Mystring k("abc");
m.show();
//m.Getlength();
//cout<<m.Getlength()<<endl;//测试用途
//m.Copy(k);
m.show();
m.Add(k).show();
}