zoukankan      html  css  js  c++  java
  • C++网易云课堂开发工程师--String复习

    class String{

      public:

        String(const char* cstr = 0);

        String(const String& str);                                  拷贝构造

        String& operator = (const String& str);

        ~String();

        char* get_c_str() const {return m_data;}    

      private:

        char* m_data;

    }

    1.构造函数和析构函数

    String::String(const char* cstr = 0){

      if(cstr){

        m_data = new char[strlen(cstr) + 1];

        strcpy(m_data, cstr);

      }

      else{

        m_data = new char[1];

        *m_data = '';

      }

    }

    析构函数

    inline

    String::String(){

      delete[] m_data;

    }

    copy ctor拷贝构造函数

    inline

    String::String(const String& str){

      m_data = new char[strlen(str.m_data) + 1];

      strcpy(m_data, str.m_data);

    }

    copy assignment operator(拷贝赋值函数)

    inline String&

    String::operator=(const String& str){

      if(this == &str)

        return *this;

      delete[] m_data;

      m_data = new char[strlen(str.m_data) + 1];

      strcpy(m_data, str.m_data);

      return *this;

    }

  • 相关阅读:
    「Poetize10」封印一击
    「Poetize10」能量获取
    vijosP1499炸毁燃料库
    BZOJ3550: [ONTAK2010]Vacation
    总结#3--一类最小割问题
    BZOJ1976: [BeiJing2010组队]能量魔方 Cube
    BZOJ2132: 圈地计划
    BZOJ2127: happiness
    BZOJ1754: [Usaco2005 qua]Bull Math
    920. 会议室
  • 原文地址:https://www.cnblogs.com/sky-z/p/9508290.html
Copyright © 2011-2022 走看看