摘要:
在该示例中我们显式定义了复制构造函数来代替默认复制构造函数, 在该复制构造函数的函数体内, 不是再直接将源对象所申请空间的地址赋值给被初始化的对象, 而是自己独立申请一处内存后再将源对象的属性复制过来, 此时book1对象的 book_name 与book2 对象的 book_name 就是指向两处不同的内存单元, 这样即便是源对象book1 被销毁后被初始化的对象book2也不会再受到影响。#include using namespace std;class book{private:char * book_name;public:book(const char * name){cout . 阅读全文
摘要:
//默认复制构造函数的不足//尽管有默认的复制构造函数来解决一般对象与对象之间的初始化问题, 但是在有些情况下我们必须手动显式的去定义复制构造函数, 例如:#include using namespace std;class Book{private:char *book_name;public:Book(const char *name)//构造函数{cout << "构造函数分配内存" << endl;book_name = new char[strlen(name) + 1];strcpy(book_name, name);}//Book(co 阅读全文