首页 > 代码库 > 【ThinkingInC++】33、构造函数和析构函数的各种特征

【ThinkingInC++】33、构造函数和析构函数的各种特征

/**
* 书本:【ThinkingInC++】
* 功能:构造函数和析构函数的各种特征
* 时间:2014年8月26日08:50:52
* 作者:cutter_point
*/

/*
构造函数和析构函数是没有返回值的。
析构函数:当对象超出他的作用域的时候,编译器将自动调用析构函数,但析构函数调用的
唯一证据是包含该对象的右括号,而且即使使用goto语句跳转析构函数任然被调用
*/

#include<iostream>

using namespace std;

class Tree
{
    int height; //私有成员,这棵树的高度
public:
    Tree(int initialHeight);    //析构函数给数的高度赋初值
    ~Tree();        //析构函数,会被自动调用
    void grow(int years);    //树的高度增加
    void printsize();       //输出树的高尺寸
};

//Tree(int initialHeight);    //析构函数给数的高度赋初值
Tree::Tree(int initialHeight)
{
    height=initialHeight;
}

//~Tree();        //析构函数,会被自动调用
Tree::~Tree()
{
    cout<<"inside Tree destructor"<<endl;
    void printsize();       //输出树的高尺寸
}

//void grow(int years);    //树的高度增加
void Tree::grow(int years)
{
    height+=years;  //每年增加一
}

//void printsize();       //输出树的高尺寸
void Tree::printsize()
{
    cout<<"Tree height is"<<height<<endl;
}

int main()
{
    cout<<"before opening brace"<<endl;
    {
        Tree t(12);
        cout<<"after Tree creation"<<endl;
        t.printsize();
        t.grow(4);
        cout<<"before closing brace"<<endl;
    }
    cout<<"after closing brace"<<endl;

    return 0;
}



【ThinkingInC++】33、构造函数和析构函数的各种特征