A-A+
有如下程序: #include<iostream> #include<iomanip> us
问题详情
有如下程序: #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。