【C++】构造函数 and 析构函数
2017-10-21 15:45
204 查看
上回书说道:构造函数和析构函数都是成员函数。那接下来我们就一起来认识一下这哥俩。
当新建一个对象时,需要对其初始化。比如:
设计师设计出一辆汽车——定义了一个对象
思考这辆汽车能干什么,能在水里走吗?能在天上飞吗?——对其进行初始化
构造函数的作用就是初始化
why?
(1)分配内存空间
(2)避免程序中人为的错误,比如没有给变量赋值
how?
使用要求如下:
1构造函数的方法名必须与类名相同
2构造函数没有返回值类型,不能用return语句
3其能把定义对象时的参数传给对象的域
4一个类可以定义多个构造函数,如果定义类时没有定义构造函数,那编译系统会自动插入一个无参数的默认构造函数,其不执行任何代码
5构造函数可以重载
清理善后
why?
在跳出程序(比如关闭文件、释放内存等)前释放资源
how?
~Line(); // 析构函数声明
Line::~Line()//析构函数定义
{}
析构函数只有一个,不能被重载,不带参数
小结
在探索中,对“函数是什么”有了更深一层的理解:函数又叫方法,指一个对象能干什么。比如说一个车能直走,也能倒行,这就是车的“函数”
构造函数
what?当新建一个对象时,需要对其初始化。比如:
设计师设计出一辆汽车——定义了一个对象
思考这辆汽车能干什么,能在水里走吗?能在天上飞吗?——对其进行初始化
构造函数的作用就是初始化
why?
(1)分配内存空间
(2)避免程序中人为的错误,比如没有给变量赋值
how?
使用要求如下:
1构造函数的方法名必须与类名相同
2构造函数没有返回值类型,不能用return语句
3其能把定义对象时的参数传给对象的域
4一个类可以定义多个构造函数,如果定义类时没有定义构造函数,那编译系统会自动插入一个无参数的默认构造函数,其不执行任何代码
5构造函数可以重载
析构函数(~)
what?清理善后
why?
在跳出程序(比如关闭文件、释放内存等)前释放资源
how?
~Line(); // 析构函数声明
Line::~Line()//析构函数定义
{}
两者比较
构造函数可以多个,可以被重载,可以带参数;析构函数只有一个,不能被重载,不带参数
小结
在探索中,对“函数是什么”有了更深一层的理解:函数又叫方法,指一个对象能干什么。比如说一个车能直走,也能倒行,这就是车的“函数”
相关文章推荐
- C++构造函数、复制构造函数、赋值操作符、析构函数--个人总结
- C++面向对象编程入门:构造函数与析构函数(二)
- c++ --> 构造函数与析构函数
- C++中析构函数和构造函数
- C++ 构造函数和析构函数是否可以继承?
- c++---派生类的构造函数和析构函数
- C++ 构造函数与析构函数学习与理解与解析
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- c++学习——构造函数与析构函数
- 【C++学习】构造函数、拷贝构造函数、析构函数小结
- C++ 类,构造函数,析构函数
- 为什么C++不能有虚构造函数,却可以有虚析构函数
- 对C++中派生类的构造函数和析构函数的认识
- 学习C++ -> 构造函数与析构函数
- C++和java中构造函数与析构函数的调用顺序
- C++学习(六) C++构造函数与析构函数(一)
- C++ 构造函数、默认构造函数、析构函数和对象初始化
- 高质量C/C++编程指南 阅读笔记(四)类的构造函数、析构函数与赋值函数
- C/C++ Notes: #define和#typedef的区别以及构造函数和析构函数