c++知识
来源:互联网 发布:基金数据下载 编辑:程序博客网 时间:2024/05/22 15:05
一、构造函数的引入
数据成员的初始化
类的数据成员不能在类定义时初始化
公有数据成员可以在定义对象时初始化
用成员函数初始化
C++提供了构造函数来处理对象的数据成员的初始化
二、带参数的构造函数
不带参数的构造函数使该类的每一个对象得到同一组初值
带参数的构造函数可以给不同的对象赋以不同的初值
构造函数的一般格式
构造函数名(类型1 形参1,类型2 形参2 ,…)
类名 对象名(实参1,实参2,…)
三、构造函数的重载
建立对象时选用无参构造函数,定义方法
Box box1;
尽管在一个类中可以包含多个构造函数,但是对于每一个对象来说,建立对象时只执行其中一个构造函数,并非每个构造函数都执行
四、使用默认参数的构造函数
应该在声明构造函数时指定默认参数
声明构造函数时,形参名可以省略
如果构造函数的全部参数都指定了默认参数,则在定义对象时可以给一个或几个实参,也可以不给实参
不指定实参,相当于所有参数都使用默认值,因此,也可以称为默认构造函数
因为一个类只能有一个默认构造函数,因此不能同时再声明无参的默认构造函数
Box()
五、使用默认参数的构造函数
在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数
如果构造函数中的参数并非全部默认时,要分析具体情况
一般构造函数的重载和有默认参数的构造函数不同时使用
六、析构函数
析构函数也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名前加位取反运算符”~”
析构函数不返回任何值,没有函数类型,也没有函数参数
由于没有函数参数,因此它不能被重载,一个类可以有多个构造函数,但只能有一个析构函数
只要对象的生命周期结束,程序会自动执行析构函数
析构函数的作用不是删除对象,而是在撤销对象占用的内存之前完成一些清理工作,使这部分内存可以被程序分配给新对象使用
析构函数可以完成设计者所指定的任何操作
如果用户没有定义析构函数,C++编译系统会自动生成一个析构函数,但这个析构函数只是有析构函数的名称和形式,实际上什么操作都不执行
下列情况下,程序执行析构函数
函数中的自动局部对象,在函数调用结束时,对象应该释放,在对象释放前自动执行析构函数
函数中的static局部对象, 在函数调用结束时不释放对象,因此也不调用析构函数,只有在main函数结束或exit函数结束程序时,才调用static局部对象的析构函数
如果定义了一个全局对象,则在程序流程离开其作用域时,调用该全局对象的析构函数
如果用new运算符动态地建立了一个对象,当用delete运算符释放该对象时,先调用该对象的析构函数
- C知识(1)
- C语言知识列表
- C#+SQLService基础理论知识
- C一些知识总结
- 知识小记(C#)
- C语言 小知识!~
- C 小知识整理
- C语言知识补遗
- c语言 小知识
- C一些知识总结
- C++string知识大全
- keil c 知识总结
- C 语言重点知识
- c语言 知识总结
- C语言一句话知识
- C 重难点知识
- C/C++小知识
- Objective-C入门知识
- C#与工业控制-串口上
- 洛谷刷题注意事项
- 更换yum源脚本
- Leet Code OJ 14. Longest Common Prefix
- 生产者与消费者之实现(wait、notify)
- c++知识
- JDBC小例子
- HTML标签之列表类标签
- 第五章——认识媒体:为你的页面增加图像
- C语言可变参数列表详述及实现printf函数
- java项目框架之jquery-validate 表单校验
- Linux 压缩命令
- 1188_约瑟夫环
- 第26篇 一对多自由控制语音(五)及CI控制器