C++——面向对象(二)——默认的构造函数(2)

来源:互联网 发布:plc和单片机有什么区别 编辑:程序博客网 时间:2024/05/22 04:46

C++——面向对象(二)

拷贝构造函数:用一个已经存在的对象初始化相同类型新对象 ,

调用的拷贝构造函数,必须传引用
防止实参和形参递归构造
系统提供的拷贝构造函数  ,浅拷贝,多次释放同一资源

初始化和赋值的区别:

初始化:定义的同时赋值

赋值:定义后再给值

实参到形参是赋值的过程,不能按照对象的值进行传递,会引起递归构造

默认的拷贝构造,对象的内存互相初始化,浅拷贝会导致崩溃,拷贝构造函数实现后,代码运行正常

CGoods good3 = good2;  this指针指向good3,rhs引用good2函数,rhs是外部的,可以直接访问外部对象私有的成员,同一个类类型生成的不同对象,共享成员方法,rhs引用的对象和this指针指向的对象,它们的类型是一样的,

什么情况下会发生浅拷贝,当对象

构造函数自己无法调用,是系统根据定义的对象的类型所选择的。析构可以自己调,自己调了,系统还调,


默认构造构造good1

带三个参数的构造构造good2,

拷贝构造函数,用good2拷贝构造good3

赋值运算符重载 用good3给good1赋值

good3析构

good2析构

good1析构

当调用good1 = good1时,计算0地址的有效字符,会崩溃,0地址是不可访问的,防止自赋值,

3步:1.防止自赋值
         2.释放旧资源
         3.开辟新资源进行初始化














阅读全文
0 0
原创粉丝点击