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