问题
单项选择题
有如下程序:
#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。