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 }
  • 相关阅读:
    解决在PDF文档中复制代码报错问题
    JAVA高级复习泛型
    SpringBoot高级监听原理
    SpringBoot整合其它框架整合Junit
    SpringBoot高级监控
    JAVA基础复习异常处理
    SpringBoot 整合 webservice 示例
    关于ScrollView的子View无法布满屏幕的问题
    Android开发中头疼的R文件问题
    博客园美化[SimpleMemory主题+tctip插件]
  • 原文地址:https://www.cnblogs.com/shfanzie/p/10023819.html
Copyright © 2011-2022 走看看