C++的析构函数

来源:互联网 发布:淘宝客鹊桥网站 编辑:程序博客网 时间:2024/06/05 22:40
1•  与类名同,但名称前有一个波浪号~
2•  一个类只有一个析构
3•  析构没有参数,没有返回值
4•  在一个对象释放前调用。释放可能是主动的,也可能是被动的。
5•  一个对象的析构函数只调用一次,但语法上允许多次调用
6•  默认析构函数
     何时需要自定义析构呢?

////  main.cpp//  析构函数////  Created by 06 on 15/1/24.//  Copyright (c) 2015年 黄永锐. All rights reserved.//#include <iostream>using namespace std;//日期类class Date{    int year,month,day;    public:    Date(){}    //构造方法                 初始化列表    Date(int y,int m,int d):year(y),month(m),day(d){        cout << "创建对象都会默认被动地调用一次构造方法" << endl;    }        //对象销毁时  如果我们自己没有写析构方法,编译器会帮我们写一个然后调用#pragma 那么问题来了,既然我不写,编译器会帮我写,那我干嘛要写???有木有什么情况必须我自己写的????处理内存的时候,也就是把之前retain的对象 都release一次    ~Date(){        cout << "对象销毁都会默认被动地调用一次析构方法 ~Date()" << endl;    }};//主函数int main(int argc, const char * argv[]){    Date d(2015,1,24);        return 0;}

运行结果如下:
创建对象都会默认被动地调用一次构造方法对象销毁都会默认被动地调用一次析构方法 ~Date()Program ended with exit code: 0


0 0
原创粉丝点击