重载+运算符, 让指针 char * c1 + char * c2 返回 char * c3...
btbtd 2007-09-04 01:19:52 搞不明白...
就是想让 指针 char + 指针 char 返回 一个 指针 char...
这里出错:
char * operator+(char * c1, char * c2)
详细:
------------------------
#include <iostream>
#include <cstring>
using namespace std;
char * StrCat(char * c1, char * c2)
{
int Len = strlen(c1) + strlen(c2);
char * c3 = new char[Len+1];
strcpy(c3, c1);
strcat(c3, c2);
return c3;
} // end char * StrCat(char * c1, char * c2)
/*
*/
// 怎么重载 全局 + ?
char * operator+(char * c1, char * c2)
{
return StrCat(c1, c2);
}
int main()
{
char * c1 = "hello";
char * c2 = ", world!";
cout << "c1: " << c1 << ", length: " << strlen(c1) << '\n';
cout << "c2: " << c2 << ", length: " << strlen(c2) << '\n';
char * c3;
c3 = StrCat(c1, c2);
cout << "c3: " << c3 << ", length: " << strlen(c3) << '\n';
// 我想实现 指针 c1 + c2, 返回一个新指针...
//char * c4 = c1 + c2;
return 0;
}