标题:各位仁兄能帮我看看怎么让这个编译通过
取消只看楼主
深藏依旧
Rank: 2
等 级:论坛游民
帖 子:45
专家分:93
注 册:2012-12-8
结帖率:100%
已结贴  问题点数:20 回复次数:1 
各位仁兄能帮我看看怎么让这个编译通过
#include<iostream>
#include<cstring>

using namespace std;

class String
{
private:
    char* _str;
public:
    String(char*str=NULL):_str(str)//构造函数
    {
   
        if(_str!=NULL)
        _str = new char[strlen(str)+1];
        strcpy(_str,str);
        
    }

    String(const String& other) : _str(other._str)//拷贝构造函数
    {
        if (other._str != NULL)   
        {
            _str = new char[strlen(other._str)+1];
            strcpy(_str, other._str);
        }
    }

   
    ~String()//析构函数
    {
        delete[] _str;
    }
public:

    friend ostream& operator<<(ostream& out,String& str)//“<<”运算符重载
    {
   
        out<<str._str;
        return out;
    }

  
  
    String operator+=(String other)//"+="运算符重载
   {
       int len = strlen(_str)+strlen(other._str);
       if(len==0)
       {
           return *this;
       };
       char* buffer = new char[len+1];
       strcpy(buffer,_str);
       strcat(buffer,other._str);

       delete[] _str;
       _str = buffer;
       return *this;
   }

    bool operator!=(String other)//"!="运算符重载
    {
        
           if(strcmp(_str,other._str)==0)
               return true;
           else
               return false;
    }

 
};


void main()
{
    String a="good student";
    String b="good";

    b+="student";
    if(a!=b)
    {
        cout<<"not same"<<endl;
    };
    char str[100];
    strcpy(str,(const char*)a);//这条语句通不过,在类中加什么操作能让编译通过?
    cout<<str<<endl;

}
搜索更多相关主题的帖子: private include public 
2012-12-08 12:58
深藏依旧
Rank: 2
等 级:论坛游民
帖 子:45
专家分:93
注 册:2012-12-8
得分:0 
我表示十分的感谢  顺便说一下其实我的这段代码就一个错误啊  再次感谢!

厚积薄发
2012-12-08 13:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-390157-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069331 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved