/*
* deleteFunc.cpp
*
* Created on: 2016年8月17日
* Author: zroad
*/
#include<string>
#include<iostream>
using namespace std;
bool being = true;
class Fruit {
public:
void print() {
cout << color << " " << name << endl;
}
Fruit(string n, string c) {
name = n;
color = c;
being = true;
cout << "Aha, I'm " << name << ".And who liked me?" << endl;
cout << " Fruit being = " << being << endl;
}
~Fruit() {
being = false;
cout << "Dame it!" << "I'm " << name << ".And who killed me?" << endl;
cout << "~Fruit being = " << being << endl;
}
public:
string name;
string color;
};
int main() {
Fruit apple("apple","green");
cout << "apple being?:" << being << endl;
Fruit * f = new Fruit("banana","red");
cout << "delete f -----" << endl;
//delete针对对象时立马调用析构函数
delete f;
return 0;
//析构函数调用的时机:
/*
* 1.创建的对象被销毁时、从定义对象的块中退出时。
* 2、调用delete时
*/
}
/*运行结果:
*
Aha, I'm apple.And who liked me?
Fruit being = 1
apple being?:1
Aha, I'm banana.And who liked me?
Fruit being = 1
delete f -----
Dame it!I'm banana.And who killed me?
~Fruit being = 0
Dame it!I'm apple.And who killed me?
~Fruit being = 0
*
*/
析构函数
最新推荐文章于 2024-12-18 22:37:50 发布