#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<"A";}
~A(){cout<<"~A";}
};
class B:public A
{
A*p;
public:
B(){cout<<"B";p=new A;}
~B(){cout<<"~C";delete p;}
};
int main()
{
B obj;
return 0;
}
看不懂啊,new是干什么的,delete又是干什么的。
这道题怎么算结果,你还没告诉我呢
追答要结果啊...
这道题的结果是ABA~A~C~A
B先构造,由于B的基类是A ,所以先构造一个A(不是动态A)
但是B的构造函数中有动态的分配了一个A
所以B构造后没哟析构之前构造了一个A
B析构时,由于动态的A是分配在B的栈上的
所以动态A先析构,接着是B,接着是那个不是动态的A
大哥你的结果不对。。
追答那你的结果呢
追问计算机告诉我是ABA~C~A~A我想知道原因。
追答额,我错了
动态的A在B之后再析构...
好吧,就这样
c++ 什么叫析构函数? 他的输出与构造函数相反么?
析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。析构函数名也应与类名相同,只是在函数名前面加一个位...
什么是析构函数和构造函数?
1、概念不同:析构函数:对象所在的函数已调用完毕时,系统自动执行析构函数。构造函数:是一种特殊的方法。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。2、作用不同:析构函数:析构函数被调用。构造函数:为对象成员变量赋初始值 3、目...
构造函数和析构函数的作用是什么
构造函数和析构函数的作用 构造函数的作用主要是在对象创建时初始化对象的状态。它是特殊类型的成员函数,用于在创建对象时设置对象的初始值或执行某些必要的操作。构造函数通常与类的名称相同,并且可以被重载,即一个类可以有多个构造函数,以适应不同的初始化需求。例如,可以有一个用于默认初始化的构造...
构造函数和析构函数调用的顺序
1.如果一个类不可能是基类就不要申明析构函数为虚函数,虚函数是要耗费空间的。2.析构函数的异常退出会导致析构不完全,从而有内存泄露。最好是提供一个管理类,在管理类中提供一个方法来析构,调用者再根据这个方法的结果决定下一步的操作 3.在构造函数不要调用虚函数。在基类构造的时候,虚函数...
构造函数和析构函数
构造函数与析构函数在对象生命周期中扮演重要角色。在创建对象时,构造函数即被调用,初始化对象的属性。例如,构造函数里可以添加代码:"Conustruct!",观察输出,确认构造函数执行时刻。对象使用完毕,将被释放。这时,析构函数启动,负责清理对象资源,释放内存。同样,析构函数中可以加入:"Destruct!",...
C语言里面构造函数和析构函数的运用办法
一.构造函数与析构函数的原理 作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表示错误已经不存在了,在“错误”的大家庭里,“语法错误”的地位只能算是冰山一角。级别高的...
简述构造函数和析构函数的作用
析构函数与构造函数的作用相反,用于撤销对象的一些特殊任务处理,可以是释放对象分配的内存空间。把类的声明放在main函数之前,它的作用域是全局的。这样做可以使main函数更简练一些。在main函数中定义了两个对象并且给出了初值,然后输出两个学生的数据。当主函数结束时调用析构函数,输出stud has been ...
析构函数什么时候调用
析构函数对象生命周期结束,被销毁时调用。析构函数与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后”的工作,例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存。
构造、析构函数可否为virtual
不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:解释一:所谓虚函数就是多态情况下只执行一个。而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象。如果构造函数设为虚函数,那么当你在构造父类的构造函数时就不得不显示的调用构造。还有一个原因就是为了...
下面关于构造函数和析构函数的描述,错误的是( )。
【答案】:D 构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。