首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

重载+运算符, 让指针 char * c1 + char * c2 返回 char * c3.该怎么处理

2012-02-28 
重载+运算符, 让指针 char * c1 + char * c2 返回 char * c3...搞不明白...就是想让指针char+指针char返回

重载+运算符, 让指针 char * c1 + char * c2 返回 char * c3...
搞不明白...
就是想让   指针   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;
}


[解决办法]
你不能对built-in类型进行运算符重载,也就是说运算符重载函数中必须至少有一个参数是用户定义类型的。

热点排行