构造函数和析构函数
来源:互联网 发布:parsley.js ajax验证 编辑:程序博客网 时间:2024/06/17 16:28
构造函数和析构函数是在类体中说明的两种特殊的成员函数。
构造函数的功能是在创建对象时,使用给定的值来将对象初始化。
析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。
构造函数的特点如下:
(1)构造函数是成员函数,函数体可写在类体内,也可写在类体外。
(2)构造函数是一个特殊的函数,该函数的名字与类名相同,该函数不指定类型说明,它有隐含的返回值,该值由系统内部使用。该函数可以有一个参数,也可以有多个参数。
(3)构造函数可以重载,即可以定义多个参数个数不同的函数。
(2)一个类中只能定义一个析构函数,析构函数不能重载。
(3)析构函数可以被调用,也可以由系统调用。在下面两种情况下,析构函数会被自动调用。一是如果一个对象被定义在一个函数体内,则当这个函数结束时,该对象的析构函数被自动调用;二是当一个对象是使用new运算符被动创建的,在使用delete运算符释放它时,delete将会自动调用析构函数。
若在类定义时没有定义任何构造函数,则编译器自动生成一个不带参数的缺省构造函数,其格式如下:
类名::缺省构造函数名()
{ }
按构造函数的规定,缺省构造函数名同类名。缺省构造函数的这样格式也可以由程序员定义在类体中。在程序中定义一个对象而没有指明初始化,则编译器便按缺省构造函数来初始化该对象,对象的所有数据成员都初始化为零或空。
同理,如果一个类中没有定义析构函数时,则编译系统也生成一个缺省析构函数,其格式如下:
类名::~缺省析构函数名()
{
}
构造函数的功能是在创建对象时,使用给定的值来将对象初始化。
析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。
构造函数的特点如下:
(1)构造函数是成员函数,函数体可写在类体内,也可写在类体外。
(2)构造函数是一个特殊的函数,该函数的名字与类名相同,该函数不指定类型说明,它有隐含的返回值,该值由系统内部使用。该函数可以有一个参数,也可以有多个参数。
(3)构造函数可以重载,即可以定义多个参数个数不同的函数。
(4)程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。
析构函数的特点如下:
(1)析构函数是一个特殊的成员函数,它的名字同类名,并在前面加“~”字符,用来与构造函数加以区别。析构函数不指定数据类型,并且也没有参数。(2)一个类中只能定义一个析构函数,析构函数不能重载。
(3)析构函数可以被调用,也可以由系统调用。在下面两种情况下,析构函数会被自动调用。一是如果一个对象被定义在一个函数体内,则当这个函数结束时,该对象的析构函数被自动调用;二是当一个对象是使用new运算符被动创建的,在使用delete运算符释放它时,delete将会自动调用析构函数。
若在类定义时没有定义任何构造函数,则编译器自动生成一个不带参数的缺省构造函数,其格式如下:
类名::缺省构造函数名()
{ }
按构造函数的规定,缺省构造函数名同类名。缺省构造函数的这样格式也可以由程序员定义在类体中。在程序中定义一个对象而没有指明初始化,则编译器便按缺省构造函数来初始化该对象,对象的所有数据成员都初始化为零或空。
同理,如果一个类中没有定义析构函数时,则编译系统也生成一个缺省析构函数,其格式如下:
类名::~缺省析构函数名()
{
}
缺省析构函数名也同类名,缺省析构函数是一个空函数。
简单地总结下析构函数:
概念:
1. 与构造函数相对应
2. 与构造函数的作用相反
3. 析构函数的形式
~类名( )
{
…
}
特点:
1. 固定的函数名称
~类名( )
2. 没有返回类型
3. 没有参数
4. 不可以重载
5. 一般由系统自动的调用
- 构造函数,拷贝构造函数和析构函数
- 构造函数、拷贝构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 关于构造函数和析构函数
- 构造函数和析构函数
- 浅析构造函数和析构函数
- 构造函数和析构函数
- 浅析构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- 构造函数和析构函数
- Java 读写文件方法(一)
- 第零章 编程开发工具介绍
- 在linux服务器中查看当前连接统计数的命令
- SQL 存在一个表而不在另一个表中的数据
- Java读写文件(二)
- 构造函数和析构函数
- 什么是RS-485接口?它比RS-232-C接口相比有何特点?
- asterisk sip codec协商
- 我国户外登山运动事故频发 10年内有220人遇难-户外登山-事故-遇难
- SQL中IN和EXISTS用法的区别
- Magento add most popular products
- linux shell until语句详解
- 多线程下,生产者消费者锁的优化问题
- 获取本月的第一天和最后一天