代码;
#include
#include
class String{
public:
String(const char* str=NULL);
char *m_data;
char *addstr;
String& operator + (const String& rhs);
};
String::String(const char* str)
{
if(str==NULL)
{
m_data=new char[1];
m_data[0]='\0';
}
else
{
m_data=new char[strlen(str)+1];
strcpy(m_data,str);
}
}
String& String::operator+(const String& rhs)
{
addstr=new char[strlen(m_data)+strlen(rhs.m_data)+1];
strcpy(addstr,m_data);
strcat(addstr,rhs.m_data);
delete [] m_data;
m_data=new char[strlen(addstr)+1];
strcpy(m_data,addstr);
delete [] addstr;
return *this;
}
int main()
{
String s1="I love ";
String s2="C++!";
s1 + s2;
puts(s1.m_data);
return 0;
}
运行结果:
文章评论(0条评论)
登录后参与讨论