3-2 构造函数的调用

来源:互联网 发布:新疆家庭教育网络平台 编辑:程序博客网 时间:2024/06/10 10:51

3-2 构造函数的调用

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

Problem Description

通过本题目的练习可以掌握构造函数和析构函数的调用;

创建类A;类中仅包含构造函数和析构函数,按照程序的输出写出类的定义和主函数main中的代码。

Input

 

Output

 

输出数据有4行,分别代表对构造函数和析构函数的调用;本练习要求所编写程序的输出必须与示例相同。

Example Input

Example Output

Constructing an object of AConstructing an object of ADestructing an object of ADestructing an object of A
这个题目没有输入,目的只是考察一下对构造函数和析构函数的理解;构造函数和析构函数的执行都是自动的。构造函数当你在定义了一个属于A类的一个对象时,构造函数就会被自动调用,如果没有参数的话,就会调用无参数的构造函数,如果没有写构造函数,编译器会加上一个参数为空函数体为空的构造函数;析构函数的调用其实就是释放空间清理定义对象的一些尾巴,在函数执行结束,或是用new来动态的定义对象然后对象使用完调用delete时,析构函数都会被自动执行;这个题目就是要说明这一件事情,这两种函数都会自动执行,所以在构造函数和析构函数里面分别加上了一句输出来证明。另外,其实对于两个对象的析构是有顺序的,我们可以借助栈的结构来理解这件事,当我们定义了一个对象时,则该对象入栈,所以假设函数执行完成时,先被析构的其实是后定义的对象,就是因为栈先入后出的特点。
code:
#include <iostream>using namespace std;class A{private:public:A(){cout<<"Constructing an object of A"<<endl;}~A(){cout<<"Destructing an object of A"<<endl;}};int main(){A a, b;return 0;}
代码很简单,关键是理解这两类函数的使用。
原创粉丝点击