您的位置:首页 > 其它

编写一个String类,实现其构造函数、析构函数以及赋值函数

2016-05-16 17:12 483 查看
用C++编写一个String类,实现其构造函数、析构函数以及赋值函数
class String
{
public:
String();
String(const char* pStr=NULL) ;
String(const String & str) ;
char *GetData() const;
int Length() const ;
String &operator =(const String &) ;
virtual ~String();<pre name="code" class="cpp">        ShowString();
    protected:private:char* m_pData ;};String::String(){m_pData=new char[1] ;m_pData[0]='\0' ;}String::String(const char* pStr){if(pStr==NULL){m_pData=new char[1] ;m_pData[0]='\0' ;}else{m_pData=new char[strlen(pStr)+1] ;strcpy(m_pData,pStr) ;}}String::String(const String &str){m_pData=new char[str.Length()+1] ;strcpy(m_pData,str.GetData()) ;}int String::Length() const{return strlen(m_pData) ;}char *String::GetData() const{return m_pData ;}String &String::operator=(const String &str){if(this==&str){return *this ;}delete[] m_pData ;m_pData=new char[strlen(str.GetData())+1] ;strcpy(m_pData,str.GetData()) ;return *this ;}String::~String(){delete[] m_pData ;  //当初始化串不存在的时候,为m_data申请一个空间存放'\0'}  <pre name="code" class="cpp">String::ShowString()  //由于m_data是私有成员,对象只能通过public成员函数来访问{cout<<this->m_data<<endl;}
剖析:这道面试题考查了一下几个方面的知识:1、C++成员函数默认参数的使用2、const关键字的用法3、如何重载操作符4、如何进行自赋值检查5、如何返回自引用
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: