zoukankan      html  css  js  c++  java
  • 面试题:String类通用构造,拷贝构造,析构,赋值函数实现

    已知 String 类定义如下:

     1 class String
     2 {
     3 public:
     4     //通用构造函数
     5     String(const char* str = NULL);
     6     //拷贝构造函数
     7     String(const String& str);
     8     //析构函数
     9     ~String();
    10     //赋值函数
    11     String& operator=(const String& str);
    12     
    13 private:
    14     char* m_data; //用于保存字符串
    15 };

    类的成员函数实现:

     1 //通用构造函数
     2 String::String(const char* str)
     3 {
     4     if(str == NULL)
     5     {
     6         m_data = new char[1];
     7         m_data[0] = '';
     8     }
     9     else
    10     {
    11         m_data = new char[strlen(str) + 1];
    12         strcpy(m_data, str);
    13     }
    14 }
    15 
    16 //拷贝构造函数
    17 String::String(const String& str)
    18 {
    19     m_data = new char[strlen(str.m_data) + 1];
    20     strcpy(m_data, str.m_data);
    21 }
    22 
    23 //析构函数
    24 String::~String()
    25 {
    26     delete [] m_data;
    27 }
    28 
    29 //赋值函数
    30 String& String::operator=(const String& str)
    31 {
    32     if(this == &str)
    33     {
    34         return *this;
    35     }
    36     
    37     //删除原来的数据,新开一块内存
    38     delete [] m_data;
    39     
    40     m_data = new char[strlen(str.m_data) + 1];
    41     strcpy(m_data, str.m_data);
    42     return *this;
    43 }
  • 相关阅读:
    idea初始化配置
    常用网址
    linux改错了profile文件
    获得ip地址[转载]
    java 基本数据类型转换
    log4j配置概要
    HTTP状态码
    HTTP 的请求方式
    10、类和方法
    9、一切都是对象
  • 原文地址:https://www.cnblogs.com/xuewangkai/p/11166467.html
Copyright © 2011-2022 走看看