网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

当类的成员变量为字符串的时候,注意深拷贝

#include 
#include  #strcpy
using namespace std;

class String{
public:
    String(const char* str = NULL):
        m_str(strcpy(new char[strlen(str?str:"")+1],
        str?str:"")){}
     ~String(){
         if(m_str){
             delete [] m_str;
             m_str = NULL;
         }
     }
     //拷贝构造
     String(const String& that):
         m_str(strcpy(new char[strlen(that.m_str)+1],that.m_str)){}
     //拷贝赋值,成员变量m_str为指针为指针时,要注意深拷贝,这里为深拷贝
     String& operator=(const String& that){
         if(&that != this){
             char* = new char[strlen(that.m_str)+1];
             delete[] m_str;//先释放旧资源
             m_str = strcpy(str,that.m_str);
         }
         return *this;
     }
     friend ostream& operator<<(ostream& os,const String&c){
         os << c.m_str;
         return os;
     }
     //c接口
     const char* c_str(void)const{
         return m_str;
     }
public:
    char* m_str;   
};

int main(void){
    String s1("hello,world");
    cout << s1 << endl;
    return 0;
}

本文名称:当类的成员变量为字符串的时候,注意深拷贝
文章URL:http://bjjierui.cn/article/gjdjid.html

其他资讯