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
- C++——面向对象(二)——默认的构造函数(2)
- C++——面向对象(一)——默认的构造函数(1)
- JavaScript面向对象(2)——创建对象的工厂模式与构造函数模式
- JavaScript面向对象设计二——构造函数模式
- 面向对象的编程——构造函数和析构函数(2)
- PHP面向对象学习源码备份(二)——调用父类构造函数
- C#——面向对象(二)
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- 面向对象的编程——拷贝构造函数(2)
- php面向对象(二)-构造函数
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- linux(十)时间同步
- C语言------文件操作+字符串里的运算
- No rule to make target `include/config/auto.conf', needed by `include/ config/kernel.release'. stop
- LeetCode 之 Median of Two Sorted Arrays
- MP3播放
- C++——面向对象(二)——默认的构造函数(2)
- 通过伪类选择器调整链接属性
- Java多线程”JUC”集合中的CopyOnWriteArraySet
- 编译gnutls找不到nettle3.1的问题
- 实现基于Haproxy+Keepalived负载均衡高可用架构
- Linux——高性能服务器编程,多进程编程
- bootstrap之breadcrumb&panel样式
- 在win10中安装并配置多个JDK不同的版本
- Achartengine.jar绘制动态图形二 --柱状图