#include <stdlib.h>
#include <stdio.h>
#include <string.h>
class TString
{
public:
TString(const char *str = NULL); // 通用构造函数
TString(const TString &another); // 拷贝构造函数
~ TString(); // 析构函数
TString & operator = (const TString &pStr); // 赋值函数
void ToString();
private:
char *m_pStr; // 用于保存字符串
};
void TString::ToString()
{
if( m_pStr )
puts( m_pStr );
}
TString& TString::operator = ( const TString &pStr )
{
if( &pStr == this )
return *this;
if( !&pStr )
return (TString)NULL;
free( this->m_pStr );
this->m_pStr = (char*)malloc( strlen( pStr.m_pStr ) + 1 );
if( !this->m_pStr )
return (TString)NULL;
strcpy( this->m_pStr, pStr.m_pStr );
return *this;
}
TString::TString( const char *pStr )
{
if( !pStr )
return;
m_pStr = (char*)malloc( strlen( pStr ) + 1 );
if( !m_pStr )
return;
strcpy( m_pStr, pStr );
}
TString::TString(const TString &refAnother)
{
if( !&refAnother )
return ;
if( &refAnother == this )
return;
m_pStr = (char*)malloc( strlen( refAnother.m_pStr ) + 1 );
if( !m_pStr )
return;
strcpy( m_pStr, refAnother.m_pStr );
}
TString::~TString()
{
if( !m_pStr )
return;
free( m_pStr );
}
int main( int argc, char** argv )
{
TString ts( "ABC" );
ts.ToString();
TString ts2( ts );
ts2.ToString();
TString ts1 = ts;
ts1.ToString();
return 0;
}
一个简单的C++面试题目
最新推荐文章于 2018-09-05 16:48:31 发布