鱼C论坛

 找回密码
 立即注册
查看: 2952|回复: 0

C++自己写的String类重载+遇到的问题

[复制链接]
发表于 2012-6-9 15:53:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ly800 于 2012-6-9 15:57 编辑

[i][/i]
[i][i][i]为什
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. class String{
  5. public:
  6.     String();
  7.     String(char *_str);
  8.     String(unsigned short int length);
  9.     String operator+(String &string);
  10.     char *get(){return str;}
  11.     ~String();
  12. protected:
  13.     char *str;
  14. };

  15. String::String()
  16. {
  17.     str=new char[1];
  18.     str[0]='\0';
  19. }
  20. String::String(char *_str)
  21. {
  22.     int i,len=strlen(str);
  23.     str=new char[len+1];
  24.     for(i=0;i<len;i++)
  25.     {
  26.         str[i]=_str[i];
  27.     }
  28.     str[i]='\0';
  29. }
  30. String::String(unsigned short int length)
  31. {
  32.     int len=length;
  33.     str=new char[len+1];
  34.     for(int i=0;i<len;i++)
  35.     {
  36.         str[i]='\0';
  37.     }
  38. }

  39. String String::operator + (String &string)
  40. {
  41.         int len;
  42.         len=strlen(string.str);
  43.         String temp;
  44.         delete [] temp.str;
  45.         temp.str=new char[strlen(str)+len];
  46.         strcpy(temp.str,str);
  47.         strcat(temp.str,string.str);
  48.         return temp;
  49. }
  50. String::~String()
  51. {
  52.     delete [] str;
  53. }
  54. int main()
  55. {
  56.     String str1("ghy");
  57.     String str2("gjy");
  58.         String str3;
  59.         str3=str1+str2;
  60.         cout<<"str3="<<str3.get()<<endl;
  61. }
复制代码

么这段代码不能实现字符串相加的功能呢?

[/i][/i][/i]
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-13 16:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表