构造函数与析构函数的比较
来源:互联网 发布:java开发框架是什么 编辑:程序博客网 时间:2024/06/05 18:54
觉得写得比较简单明了,故转载作记录。
转载:http://blog.163.com/liyl122539@126/blog/static/1805821620091123101193/?fromdm&fromSearch&isFromSearchEngine=yes
1、 构造函数:
(1)、 构造函数是成员函数,函数体可写在类体内,也可以写在类体外。
(2)、 构造函数是一个特殊的函数,该函数的名字与类名相同,该函数不指定类型说明,它有隐含的返回值,该值由系统内部使用。该函数可以有一个参数,也可以有多个参数。
(3)、 构造函数可以重载,即可以定义多个参数个数不同的构造函数。
(4)、 程序中不能直接调用构造函数,在创建对象时,系统自动调用构造函数。
2 、析构函数:
(1)、 析构函数是成员函数,函数体可写在类体内,也可以写在类体外。
(2)、 析构函数名字与类名同,并在前面加 ”~” 字符,析构函数不指定数据类型,并且也没有参数。
(3)、 一个类只可能定义一个析构函数。
(4)、 析构函数可以被调用,也可以由系统调用。在下面两种情况下,析构函数会被自动调用:
a、如果一个对象被定义在一个函数体内,则当这个函数结束时,该对象的析构函数被自动调用。
b、当一个对象是使用 new 运算符动态创建的,在使用 delete 运算符释放它时, delete 会自动调用析构函数。
例 13 :创建一个 Employee 类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把表示构造函数、 ChangeName() 、 display() 的函数原型放在类定义中,构造函数初始化每个成员, Display() 函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。
用多文件结构实现:
**************employee.h**************************
class employee
{
public:
employee(char *na,char *street,char *city,char *di,char *po);
void changeName(char *);
void display();
protected:
char *name;
char *street;
char *city;
char *district;
char *post;
};
****************function.cpp**************
#include<iostream.h>
#include”employee.h”
employee::employee(char *na,char *st,char *ci,char *di,char *po)
{
name=na;
street=st;
city=ci;
district=di;
post=po;
}
void employee::changeName(char *na)
{
name=na;
}
void employee::display()
{
cout<<name<<endl;
cout<<street<<endl;
cout<<city<<endl;
cout<<district<<endl;
cout<<post<<Endl;
}
*********************test.cpp*********************
#include”employee.h”
void main()
{
employee a1(“WangFei”,”Street 200” ,”Tianjin”,”Zhixiashi”,” 300480” );
a1.display();
a1.changeName(“LiLi”);
a1.display();
}
- 构造函数与析构函数的比较
- 构造函数与析构函数的比较
- 构造函数与普通函数的比较
- 构造函数与析构函数之比较
- srting的类构造函数、析构函数、拷贝构造函数与赋值构造函数
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 构造函数、析构函数与虚函数的关系
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 类的构造函数、析构函数与赋值函数
- 构造函数与析构函数重的虚函数
- 虚函数与构造函数,析构函数的关系
- 类的构造函数、析构函数与赋值函数
- C++和VC++还有Visual Studio
- 对 Message 和 Handle 的机制理解 必须写一个例子学习
- 淘宝2011.9.21校园招聘会笔试题
- A*寻路初探
- GIF 、JPEG、PNG的区别
- 构造函数与析构函数的比较
- 仿苹果系统桌面任务栏
- XCode里插入调试断点,程序却不停止的解决方法
- 搭建交叉编译环境
- 自己动手实现IOC和MVC(一)
- panel 误删
- 2012校招之创新工厂远程面试
- error C2662, cannot convert ‘this’ pointer from ‘const class ’ to ‘class &’
- html和winform交互