/** * 书本:【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; }
时间: 2024-10-30 23:08:08