构造函数 析构函数 功能 对数据成员初始化, 由系统自动调用 对象释放前的操作, 由系统自动调用 名字 类名() ~类名() 特点 无函数类型 可有参数 可以重载 无函数类型 不可有参数 不可重载 * 3.3 调用构造函数和析构函数的顺序 在使用构造函数和析构函数时,需要特别注意对它们的调用时间和调用顺序。 * 调用构造函数 调用析构函数 全局对象 静态局部对象 局部自动对象 动态对象 表1 构造函数、析构函数的调用时间表 在本文件模块中的所有函数(main函数)执行之前调用 main函数执行完或调用exit函数时 第一次函数被调用,执行到定义对象的地方时 main函数执行完或调用exit函数时 每当函数被调用,执行到定义对象的地方时 在退出对象的作用域时 用new新建对象时 用delete回收对象时 * 析构顺序: 对于同一存储类别的对象而言,调用析构函数的次序正好与调用构造函数的次序相反:先构造的后析构,后构造的先析构。相当于一个栈,先进后出。 对于不同存储类别的对象而言,先析构局部自动对象,然后是静态局部对象,然后是全局对象。 * #include iostream.h class A { float x; public: A(float a) { x=a; cout调用非缺省的构造函数:xendl; } A(){ x=0; cout调用缺省的构造函
原创力文档

文档评论(0)