A-A+

有如下程序: #include<iostream> #include<iomanip> us

2022-08-05 23:42:09 问答库 阅读 173 次

问题详情

有如下程序: #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。

考点:程序