近日我在做一个运算符重载的程序,虽然在编译和连接时都没有问题,而且出来的结果也是正确的.可是在出来结果后就弹出一个错误窗口.我不知是什么原因.请各位编程高手指点.在线等候.急!!!!!
下面是我的程序:
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<math.h>
class String
{
char *str;
int length;
public:
String(char*s="")
{
str=new char[strlen(s)+1];
strcpy(str,s);
}
friend String operator+(String s1,String s2);
void print()
{
cout<<endl;
cout<<str<<endl;
}
};
String operator +(String s1,String s2)
{
String t;
cout<<"please input the first string:"<<endl;
gets(s1.str);
getch(
cout<<endl;
cout<<"please input the second string:"<<endl;
gets(s2.str);
t.str=new char[strlen(s1.str)+1+strlen(s2.str)+1];
strcpy(t.str, s1.str);
strcat(t.str, s2.str);
return t;
}
int main(int argc, char* argv[])
{
String s1,s2,s3;
s3=s1+s2;
s3.print();
return 0;
}