实例化P1的时候调用一次无参构造函数,即Myclass p1,这里调用无参构造函数,显示 A
p2是指针,声明的时候不会调用构造函数,所以在Myclass *p2这里,不会调用任何构造函数。在new的时候调用构造函数,p2使用的是带参构造函数,new的时候打印X。
析构的时候显示两次B
所以结果是AXBB。答案选D
编译器运行结果:
int main()
{
MyClass p1,*p2; //p1调用无参构造函数实例化,指针只有在new的时候才调用构造函数
p2=new MyClass('X');
delete p2; //显示调用析构函数
return 0;
//这里调用p1的析构函数
}
跟p1没啥关系应该 就是p2自己的无参数构造析构在有参构造