析构函数

/*
 * 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
 *
 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值