下面是我的代码,可是运行不出相加后的字符串结果,编译和连接都没错误,不知道问题出在哪,哪位高手帮忙看下?
String.h文件:
class String
{
public:
String(){p=NULL;}
String(char *str);
friend String operator + (String &string1,String &string2);
void display();
~String()
{delete []p;}
private:
char *p;
int len;
};
String.cpp文件:
#include<iostream.h>
#include<string.h>
#include"String.h"
String::String(char *str)
{p=str;}
void String::display()
{cout<<p<<'\n';}
String operator + (String &string1,String &string2)
{
String string3;
string3.len=string1.len+string2.len;
string3.p=new char [string3.len+1];
strcpy(string3.p,string1.p);
strcat(string3.p,string2.p);
return string3;
}
main.cpp文件:
#include<iostream.h>
#include<string.h>
#include"String.h"
int main()
{
String s1("Hello"),s2("World"),s3;
s1.display();
s2.display();
s3=s1+s2;
s3.display();
return 0;
}