1. 程式人生 > >運算子過載(實現CString類)

運算子過載(實現CString類)

private:

            char*m_pdate;

public:

//建構函式

CString::CString(){};

//拷貝構造

CString::CString(const CString& t_cstring)

{

   if(m_pdate!=NULL)

      delete[]m_pdate;

   m_pdate=new char[strlen(t_cstring.m_pdate)+1] //分配空間

   strcpy(m_pdate,t_cstring.m_pdate);

};

//析造函式

CString::~CString()

{

   if(m_pdate!=NULL)

     delete[]m_pdate;

};

//過載=

CString&CString::operator=(const CString& t_cstring)

{

   if(m_pdate!=NULL)

      delete[]m_pdate;

   m_pdate=new char[strlen(t_cstring.m_pdate)+1] //分配空間

   strcpy(m_pdate,t_cstring.m_pdate);

   return *this;

};

//過載==

bool CString::operator==(const CString&

 t_cstring)

{

   if(strcpy(m_pdate,t_cstring_m_pdate)==0)

      return true;

   else

      return false;

};

//過載+

CString&CString::operator+(const CString& t_cstring)

{

   CString* temp;

   int a_len=strlen(this.m_pdate);

   int b_len=strlen(t_cstring.m_pdate);

   temp->m_pdate=new char[a_len+b_len+1

] //分配空間

   strcpy(temp->m_pdate,m_pdate);                //複製字串

   strcat(temp->m_pdate,t_cstring.m_pdate)   //連線字串

   return *temp;

};