c++ 一个程序运行到一半,无响应,求救?!
来源:百度知道 编辑:UC知道 时间:2024/06/13 15:33:00
#include <iostream.h>
#include <string.h>
class A
{
public:
void add(int a,int b)
{
int t;
t=a+b;
cout<<t<<endl;
}
void add(char *a,char *b)
{
cout<<strcat(a, b)<<endl;
}
};
void main()
{ A obja,objb;
obja.add(1,2);
objb.add("ab","cd");
}
请问,第二add个函数有什么问题吗?
#include <string.h>
class A
{
public:
void add(int a,int b)
{
int t;
t=a+b;
cout<<t<<endl;
}
void add(char *a,char *b)
{
cout<<strcat(a, b)<<endl;
}
};
void main()
{ A obja,objb;
obja.add(1,2);
objb.add("ab","cd");
}
请问,第二add个函数有什么问题吗?
"ab"和"cd"都是const char*类型,是不可改变的,所以我在你的函数入面加入了一个临时变量,我把那段发出来给你
void add(char *a,char *b)
{
char *temp=new char[strlen(a)+strlen(b)+1];
strcpy(temp,a);
cout<<strcat(temp, b)<<endl;
delete[] temp;
}
};
我试过了,应该没有问题
#include <iostream.h>
#include <string>
class A
{
public:
void add(int a,int b)
{
int t;
t=a+b;
cout<<t<<endl;
}
void add(char *a,char *b)
{
cout<<strcat(a, b)<<endl;
}
};
void main()
{ A obja,objb;
obja.add(1,2);
char ch1[10]="ab",ch2[10]="cd";
objb.add(ch1,ch2);
}