有如下程序:#include<iostream>using namespace std;class test{private:  int a;public:  test(){cout<<"constructor"<<endl;}  test(int a){

admin2017-10-17  45

问题 有如下程序:#include<iostream>using namespace std;class test{private:  int a;public:  test(){cout<<"constructor"<<endl;}  test(int a){cout<<a<<endl;}  test(const test&_test)  {      a=_test.a;      cout<<"copy constructor"<<en+dl;  }  ~test(){cout<<"destructor"<<endl;}};int main(){  test A(3);  rerun 0;}运行时输出的结果是

选项 A、3
B、constructor   destructor
C、copy constructor   destructor
D、3   destructor

答案D

解析 本题考查的知识点是:构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建的时候,都会隐含调用众多构造函数中的一个,而在被销毁的时候,又会隐含调用唯一的那个析构函数。因此,解此类题目只要找准创建时调用的是哪个构造函数,和对象何时被销毁即可。本题只有主函数中创建了一个对象A,并使用了构造参数3,因此会隐含调用test(int a)这个构造函数,输出一个3。接下来主函数结束,对象A被销毁,所以又隐含调用~test()析构函数,输出一个destructor。故本题应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/oJAp777K
0

最新回复(0)