问题 单项选择题

有如下程序:
#include<iostream>
#include<iomanip>
using namespace std;
class TestClass
public;
TestClass ()cout<<’A’;
TestClass(char C)cout<<c;)
~TestClass ()cout<<’B’;
;
int main()
TestClass p1,*p2;
p2=new TestClass(’X’);
delete p2;
return 0;

执行这个程序的结果是( )。

A.ABX

B.ABXB

C.AXBB

D.AXB

答案

参考答案:C

解析: 在定义对象p1时由系统自动调用构造函数TestClass(),输出字母A;用new创建单个对象TestClass(’X’)时,要根据参数调用相应的构造函数TestClass(char C),输出字母X;在执行delete时,系统会自动调用析构函数~TestClass(),输出字母B,当对象的生存周期即将结束时系统会自动调用析构函数~TestClass(),输出字母B。

单项选择题
单项选择题