c++练习题,请给出答案,并说明原因。谢谢

classmyclass{public:myclass(){cout<<"A";}myclass(charc){cout<<c;}~myclass(){cout<<"B"... class myclass
{
public:
myclass(){cout<<"A";}
myclass(char c) {cout<<c;}
~myclass(){cout<<"B";}
};
int main()
{
myclass a,*p;
p=new myclass('x');
delete p;
cout<<endl;
return 0;}
展开
 我来答
402407
2013-01-13 · TA获得超过771个赞
知道小有建树答主
回答量:726
采纳率:50%
帮助的人:899万
展开全部
class myclass
{
public:
myclass(){cout<<"A";} // 输出A
myclass(char c) {cout<<c;} // 输出 传入的字符
~myclass(){cout<<"B";} // 输出B
};
int main()
{
myclass a,*p; // 初始化a对象, 这里执行myclass() 输出A // 之所以没有输出两个A,是因为p指针只是申明了p指针变量,但是并没有给它创建一个myclass对象
p=new myclass('x'); // 这里执行myclass(char c) 输出x
delete p; // 这里执行 输出B
cout<<endl; // 输出回车
return 0;} // 结束后释放对象a,输出B
追问
为什么return 0后要释放对象a呢?基于哪条程序
追答
程序结束后,会自动调用对象的析构函数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式