用一个对象初始化另一个对象时用到拷贝构造函数
例如: String A=B 注意这个是用B初始化时A
如果 在程序中 A=B赋值时 用的是赋值函数
如果对象有指针成员 则系统默认的复制构造函数是浅层复制构造函数,它只是把指针指向同一个地址,这是不对的,例如每个对象在释放指针占用的空间时,同一个指针地址被释放两次;因此必须自己写复制构造函数 为指针分配新的内存空间。
当函数是按值返回的时候,要调用赋值构造函数。同时临时对象被消灭 它的析构函数也被执行
用一个对象初始化另一个对象时用到拷贝构造函数
例如: String A=B 注意这个是用B初始化时A
如果 在程序中 A=B赋值时 用的是赋值函数
如果对象有指针成员 则系统默认的复制构造函数是浅层复制构造函数,它只是把指针指向同一个地址,这是不对的,例如每个对象在释放指针占用的空间时,同一个指针地址被释放两次;因此必须自己写复制构造函数 为指针分配新的内存空间。
当函数是按值返回的时候,要调用赋值构造函数。同时临时对象被消灭 它的析构函数也被执行