zoukankan      html  css  js  c++  java
  • 请为CMyString类型编写构造函数、copy构造函数、析构函数和赋值运算符函数。

    如下为类型CMyString的声明,请为该类型编写构造函数、copy构造函数、析构函数和赋值运算符函数。
     1 class CMyString
     2 {
     3 public:
     4     CMyString(const char* pData = nullptr);
     5     CMyString(const CMyString& str);
     6     ~CMyString(void);
     7  
     8     CMyString& operator = (const CMyString& str);
     9  
    10     void Print();
    11  
    12 private:
    13     char* m_pData;
    14 };
    
    

    完整代码如下:

     1 #include<cstring>
     2 #include<cstdio>
     3  
     4 using namespace std;
     5  
     6 class CMyString
     7 {
     8 public:
     9     CMyString(const char* pData = nullptr);
    10     CMyString(const CMyString& str);
    11     ~CMyString(void);
    12  
    13     CMyString& operator = (const CMyString& str);
    14  
    15     void Print();
    16  
    17 private:
    18     char* m_pData;
    19 };
    20  
    21 CMyString::CMyString(const  char *pData)
    22 {
    23     if (pData == nullptr)
    24     {
    25         m_pData = new char[1];
    26         m_pData[0] = '';
    27     }
    28     else
    29     {
    30         int length = strlen(pData);
    31         m_pData = new char[length + 1];
    32         strcpy_s(m_pData,length+1, pData);
    33     }
    34 }
    35  
    36 CMyString::CMyString(const CMyString &str)
    37 {
    38     int length = strlen(str.m_pData);
    39     m_pData = new char[length + 1];
    40     strcpy_s(m_pData,length+1, str.m_pData);
    41 }
    42  
    43 CMyString::~CMyString()
    44 {
    45     delete[] m_pData;
    46 }
    47  
    48 CMyString& CMyString::operator = (const CMyString& str)
    49 {
    50     if (&str != this)
    51     {
    52         CMyString strTemp(str);
    53         char* pTemp = strTemp.m_pData;
    54         strTemp.m_pData = m_pData;
    55         m_pData = pTemp;
    56     }
    57  
    58     return *this;
    59 }
    60  
    61 void CMyString::Print()
    62 {
    63     printf("%s", m_pData);
    64 }
  • 相关阅读:
    1、PHP入门二维数组与循环
    Nginx 配置反向代理后,页面中取绝对URL地址的问题显示代理端口
    苹果手机上点击WEUI日期控件不容易点中
    ios 不支持-,-时间。
    Newtonsoft.Json添加项
    Baidu地图Map api直接加https不起作用
    腾讯云cos封装
    linux连接工具隧道模式
    微信调试工具测试时有时候复制URL没有corpid解决
    WEUI控件JS用法
  • 原文地址:https://www.cnblogs.com/shfanzie/p/10023819.html
Copyright © 2011-2022 走看看