| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1262 人关注过本帖
标题:自己写的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
快速回复:自己写的string类
数据加载中...
 
   



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

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