zoukankan      html  css  js  c++  java
  • Offer_1

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    class CMyString
    {
    public:
    	CMyString(char *m_pData=NULL);
    	CMyString(const CMyString& str);
    	~CMyString(void);
    
    	CMyString& operator=(const CMyString& str);
    
    	void print();
    private:
    	char *m_pData;
    };
    
    CMyString::CMyString(char *m_pData)
    {
    	if(m_pData!=NULL)
    	{
    		this->m_pData = new char[strlen(m_pData)+1];
    		strcpy(this->m_pData, m_pData);
    	}else{
    		this->m_pData = NULL;
    	}
    }
    
    CMyString::CMyString(const CMyString& str)
    {
    	new (this) CMyString(str.m_pData);
    	//this->m_pData = new char[strlen(str.m_pData)+1];
    	//strcpy(this->m_pData, str.m_pData);
    }
    
    CMyString::~CMyString()
    {
    	if(m_pData!=NULL)
    	{
    		delete []  m_pData;
    		m_pData = NULL;
    	}
    }
    
    CMyString& CMyString::operator=(const CMyString& str)
    {
    	if(this!=&str)
    	{
    		CMyString strTemp(str);
    		char * pTemp = strTemp.m_pData;
    		strTemp.m_pData = m_pData;
    		m_pData = pTemp;
    	}
    	return *this;
    }
    
    void CMyString::print()
    {
    	if(m_pData!=NULL)
    		cout<<m_pData<<endl;
    }
    
    int main()
    {
    	CMyString str("I'm xxxx.");
    	str.print();
    	CMyString cpy1 = str;
    	cpy1.print();
    	CMyString cpy2 = "hello World";
    	cpy2.print();
    	CMyString cpy3;
    	cpy3 = str;
    	cpy3.print();
    	CMyString cpy4, cpy5;
    	cpy4 = cpy5;
    	cpy4.print();
    	CMyString cpy6(cpy5);
    	return 0;
    }


  • 相关阅读:
    HDU5873
    HDU5874
    HDU1565(状态压缩dp)
    POJ2774(二分+哈希)
    HDU4474
    HDU2602(背包)
    单链表
    POJ2503(hash)
    POJ1200(hash)
    顺序表
  • 原文地址:https://www.cnblogs.com/riskyer/p/3266462.html
Copyright © 2011-2022 走看看