标题:自己写的string类
只看楼主
fhqihfd123
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2010-10-20
结帖率:50%
已结贴  问题点数:0 回复次数:7 
自己写的string类

#include <iostream>
using namespace std;
class String
{
    char *ptr;
    public:
    String();
    ~String();
    explicit String(const char *p);
    String(const String&s);
    String& operator=(const String& rhs);
     friend ostream&operator<<(ostream& os,const String& s);
    };
String::String()
{
    ptr=new char[1];
    ptr[0]='\0';
}
String::~String()
{
    delete[]ptr;
}
String::String(const char*p)
{
    ptr=new char[strlen(p)+1];
    strcpy(ptr,p);
}
String::String(const String&s)
{
    ptr=new char[strlen(s.ptr)+1];
    strcpy(ptr,s.ptr);
}
String& String::operator=(const String& rhs)
{
    if(this!=&rhs)
    {
    delete[]ptr;
    ptr=new char[strlen(rhs.ptr)+1];
    strcpy(ptr,rhs.ptr);
    }
    return *this;
   
}
ostream&operator<<(ostream& os,const String& s)
{
    os<<s.ptr;
    return os;
}
int main()
{
       String s1;
       String s2("abcd");
       String s3=s2;
       s1=s2;
       s2=s2;
       cout<<s2<<endl;         
  
    system("pause");
      return 0;
}
搜索更多相关主题的帖子: string 
2010-10-20 16:10
system3288
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:140
注 册:2010-10-9
得分:5 
学习了,高手啊。刚接触C++的类,感觉好复杂,好难懂啊
2010-10-20 17:09
lyj2010lyj
Rank: 2
等 级:论坛游民
帖 子:25
专家分:27
注 册:2010-9-28
得分:5 
复杂,一点提示都没有!
2010-10-20 19:12
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:5 
值得鼓励。
楼主可以试着再去实现一些其它 string 类里有的函数。
2010-10-20 22:18
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:5 
顶一下~支持
2010-10-21 09:15
fhqihfd123
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2010-10-20
得分:0 
哪个地方看不懂,,可以问我?
2010-10-22 14:28
蜗牛前行
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-12-14
得分:0 
为什么我运行一下,,有好几个错误?
2010-12-14 14:32
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
String& String::operator=(const String& rhs)
{
    if(this!=&rhs)
    {
    delete[]ptr;
    ptr=new char[strlen(rhs.ptr)+1];
    strcpy(ptr,rhs.ptr);
    }
    return *this;
   
}
呵呵  这就是楼主所谓的string类啊   strcpy(ptr,rhs.ptr);
楼主可以尝试不用这个   自己写个循环就可以搞定   注意 这可是深拷贝哦

                                         
===========深入<----------------->浅出============
2010-12-14 15:29



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




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

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