zoukankan      html  css  js  c++  java
  • string类的实现

    12. 已知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(constchar*str)
    {
    if ( str == NULL ) // strlen在参数为NULL时会抛异常才会有这步判断
    {
    m_data =newchar[1] ;
    m_data[0] ='' ;
    }
    else
    {
    m_data =newchar[strlen(str) +1];
    strcpy(m_data,str);
    }
    }
    String::String(const String &another)
    {
    m_data =newchar[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 =newchar[strlen(rhs.m_data) +1];
    strcpy(m_data,rhs.m_data);
    return*this ;
    }

    String::~String()
    {
    delete []m_data ; //自己对于申请空间的释放
    }

  • 相关阅读:
    读取radio的value值
    Bootstrap初学(一)
    移动测试用例
    Python 打包成exe执行文件
    Python 模块导入
    Sublime Text2编辑器
    发送Email
    读写TXT文档
    JS与Jquery
    自动化测试摸索
  • 原文地址:https://www.cnblogs.com/poemCoder/p/3204971.html
Copyright © 2011-2022 走看看