您的位置:首页 > 编程语言 > C语言/C++

C++拷贝构造函数的深拷贝与浅拷贝知识点

2017-04-01 11:43 225 查看
#define _CRT_SECURE_NO_DEPRECATE

#include <iostream>

using namespace std;

class MyString{

public:
char* pstr;
int length;

MyString(const char* str){
this->length = strlen(str) + 1;
this->pstr = new char[length]{0};
strcpy(this->pstr, str);
}

void show(){
cout << "lebgth " << length << " address " << (void*)pstr << " " << pstr << endl;
}

~MyString(){
delete[] pstr;
}

MyString(const MyString& mystr){
this->length = mystr.length;
this->pstr = new char[mystr.length]{0};
strcpy(this->pstr, mystr.pstr);
}

};

void main(){

MyString mystr("Nanjing");
mystr.show();

MyString mystr2(mystr);
mystr2.show();

mystr.~MyString();
mystr2.show();

cin.get();
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: