构造函数与析构函数的比较
2011-09-28 11:14
253 查看
觉得写得比较简单明了,故转载作记录。 转载: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(); } |
相关文章推荐
- 比较显式调用构造函数和析构函数
- 构造函数与析构函数的比较
- 比较显式调用构造函数和析构函数
- 比较显式调用构造函数和析构函数
- 比较显式调用构造函数和析构函数
- 构造函数与析构函数之比较
- 面向对象——构造函数与析构函数(多语言比较——整合自网络)
- 面向对象——构造函数与析构函数(多语言比较——整合自网络)
- C++中静态构造函数和静态析构函数的模拟
- 构造函数和析构函数
- 编写类String的构造函数、析构函数和赋值函数
- 喜刷刷2——构造函数与析构函数
- 派生类的构造函数和析构函数
- 派生类的构造函数与析构函数
- C++中为什么构造函数不能是虚函数,析构函数是虚函数
- 构造函数与析构函数
- c++学习札记 构造函数与析构函数
- 类与对象:构造函数和析构函数
- C++的构造函数和析构函数
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容