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;} 展开
{
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;} 展开
1个回答
展开全部
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
{
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呢?基于哪条程序
追答
程序结束后,会自动调用对象的析构函数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询