设为首页收藏本站

编程十万个为什么,属于程序员的编程论坛

 找回密码
 5秒快速注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 6909|回复: 7

[C/C++每日一练] 【笔试】:编程实现C++string 类成员函数

[复制链接]
发表于 2013-8-6 17:24:38 | 显示全部楼层 |阅读模式
PStatus"> 本帖最后由 夜影 于 2013-8-6 21:32 编辑

已知String类声明如下:
class String
{
    public:
    String(const char *str = NULL); // 通用构造函数
    String(const String &another); // 拷贝构造函数
    ~ String(); // 析构函数
    String & operater =(const String &rhs); // 赋值函数
    private:
    char *m_data; // 用于保存字符串
};

写出类的成员函数实现:
String::String(const char *str)
{
    if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断
    {
        m_data = new char[1] ;
        m_data[0] = '\0' ;
    }
    else
    {
        m_data = new char[strlen(str) + 1];
        strcpy(m_data,str);
    }
}
String::String(const String &another)
{
    m_data = new char[strlen(another.m_data) + 1];
    strcpy(m_data,other.m_data);
}
String& String::operator =(const String &rhs)
{
    if ( this == &rhs)
        return *this ;
    delete []m_data; //删除原来的数据,新开一块内存
    m_data = new char[strlen(rhs.m_data) + 1];
    strcpy(m_data,rhs.m_data);
    return *this ;
}
String::~String()
{
    delete []m_data ;
}



发表于 2013-8-6 21:06:45 | 显示全部楼层
手抖了么,重复两次?
发表于 2013-8-23 17:37:28 | 显示全部楼层
很久没有练习做了啊。
发表于 2013-11-9 17:24:14 | 显示全部楼层
表示有些还是看不懂 我感觉没有学过吧
发表于 2013-11-9 17:25:33 | 显示全部楼层
String& String::operator =(const String &rhs)
{
    if ( this == &rhs)
        return *this ;
    delete []m_data; //删除原来的数据,新开一块内存
    m_data = new char[strlen(rhs.m_data) + 1];
    strcpy(m_data,rhs.m_data);
    return *this ;
}

本文摘自: 编程十万个为什么(http://www.bcwhy.com) 详细出处请参考:http://www.bcwhy.com/thread-20566-1-1.html
  这一段不怎么看得明白
发表于 2013-11-9 17:26:21 | 显示全部楼层
String& String::operator =(const String &rhs)
{
    if ( this == &rhs)
        return *this ;
    delete []m_data; //删除原来的数据,新开一块内存
    m_data = new char[strlen(rhs.m_data) + 1];
    strcpy(m_data,rhs.m_data);
    return *this ;
}
这段不怎么明白
发表于 2013-12-21 10:26:41 掌上BcWhyBcWhy手机版 | 显示全部楼层
jt0507 发表于 2013-11-09 17:26:21
String& String::operator =(const String &rhs)
{
    if ( this == &rhs)
        return *this ;

哪句不懂来自: iPhone客户端
发表于 2014-8-8 14:47:56 | 显示全部楼层
不太会 看了就头痛了
您需要登录后才可以回帖 登录 | 5秒快速注册

本版积分规则

关闭

BcWhy推荐上一条 /1 下一条

QQ|关于我们|最新帖子|小黑屋|手机版|编程十万个为什么 ( 粤ICP备16108587号-2  

GMT+8, 2017-4-29 11:33 , Processed in 0.230552 second(s), 28 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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