帮忙看看错在哪吧!!!高分求教啦!!!
刚开始学,试着写了一个实现字符串连接的小程序,运行结果却有乱码,不知道错哪了,请各位大虾帮忙指点一二,高分求教哦!!!谢了!!!
#include <iostream.h>
#include <string.h>
class String{
public:
String(char* pN="no name")
{
pName=new char[strlen(pN)+1];
if(pName!=0)
strcpy(pName,pN);
}
String(String& s)
{
pName=new char[strlen(s.pName)+1];
if(pName!=0)
strcpy(pName,s.pName);
}
~String()
{
if(pName)
{
delete pName;
pName=0;
}
}
friend String operator +(String& s1,String& s2);
void display()
{
cout<<pName<<endl;
}
protected:
char* pName;
};
String operator +(String& s1,String& s2)
{
char* newStr=new char[strlen(s1.pName)+strlen(s2.pName)+1];
strcpy(newStr,s1.pName);
strcat(newStr,s2.pName);
return String(newStr);
}
void main()
{
String s1("aaa"),s2("bbb"),s3;
cout<<"String1 is:";
s1.display();
cout<<"String2 is:";
s2.display();
s3=s1+s2;
cout<<"String1 + String2 is:";
s3.display();
}