copy_constructor 复制构造函数1 电玩女神 2022-10-02 03:49 132阅读 0赞 \#include<iostream> \#include<string.h> using namespace std; class name\{ public: name(char \*pn); ~name(); name::name(const name& n); protected: char \*pname; int size; \}; name::name(char \*pn)\{ cout << "constructing" << pn << endl; pname = new char\[strlen(pn) + 1\]; if (pname != 0) strcpy\_s(pname, strlen(pn) + 1, pn); size = strlen(pn); \} name::~name()\{ cout << "Destructing" << pname << endl; pname\[0\] = '\\0'; delete\[\]pname; size = 0; \} name::name(const name& n)\{//拷贝构造函数。 cout << "call copy\_constructor" << endl; int size = n.size+1; pname = new char\[size \];//为其临时对象申请个内存。让临时对象的指针指向它。 //防止释放临时对象时把原来的对象的指针所指空间给弄乱 strcpy\_s(pname, size,n.pname);//两个参数不好办,用三个参数。 \} void main()\{ name Obj1("NoName"); cout << "strlen(\\"NoName\\")=" << strlen("NoName") << endl; name Obj2 = Obj1; system("pause"); \} 转载于:https://blog.51cto.com/ji123/1919409
还没有评论,来说两句吧...