77问答网
所有问题
当前搜索:
析构函数能是虚函数吗
c++
析构函数
是在什么时候执行
答:
c++
析构函数
调用时间:1、对象生命周期结束,被销毁时;2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数
是虚函数
时;3、对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象...
析构函数
和
虚函数
的用法和作用是什么?
答:
能依据其类型确认调用那个函数的能力称为多态性,或称迟后联编。另:
析构函数
一般在对象撤消前做收尾工作,比如回收内存等工作,虚拟函数的功能是使子类可以用同名的函数对父类函数进行重载,并且在调用时自动调用子类重载函数,如果是纯
虚函数
,则纯粹是为了在子类重载时有个统一的命名而已。
C++
虚析构函数
问题
答:
p->~Base(); // p 对象在 new 时实际上是 Derived,而 Base 又拥有
虚
析构函数
,所以 Derived 的析构函数已经保存于 p 对象的 vtable 中。因此调用 ~Base 实际上还是会先调用 ~Derived delete p; // ~Derived 已经被调用,析构函数地址已从 vtable 中删除,所以只会调用 ~Base Desived 会...
c++
析构函数
是在什么时候执行
答:
c++
析构函数
调用时间:1、对象生命周期结束,被销毁时;2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数
是虚函数
时;3、对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象...
析构函数可以
被继承吗
答:
2、子类的构造函数会显示的调用父类的构造函数或隐式的调用父类的默认的构造函数进行父类部分的初始化。3、
析构函数
也一样。它们都是每个类都有的东西,如果能被继承,那就没有办法初始化了。不能重载析构函数,只能声明
为虚函数
,为了多态发生时能够完全析构 只有构造函数才能重载,用于多种方式构造...
虚析构函数
的虚析构函数举例
答:
这里是一个例子:class awov { // awov = abstract w/o// virtualspublic:virtual ~awov() = 0; // 声明一个纯虚
析构函数
};这个类有一个纯
虚函数
,所以它是抽象的,而且它有一个虚析构函数,所以不会产生析构函数问题。但这里还有一件事:必须提供纯虚析构函数的定义:awov::~awov()...
关于抽象基类中的 构造函数和
析构函数
答:
虚
析构函数
是为了确保类的实例能够被正确析构。因为非虚函数的调用的代码是在链接期绑定的,而完全可能出现本来是类SubClass的实例,你转换为FatherClass的指针了,这个时候会导致父类的析构函数被调用,而导致错误的析构。所以C++的书上基本上都是建议将可能被继承的类的析构函数声明
为虚函数
。(虚函数...
构造
函数可以是虚函数吗
答:
我记得不可以,但是
析构函数可以
关于C++虚拟
函数
或者
可能是
联编的问题
答:
先调用派生类的析构函数,再调用基类的析构函数。当基类的析构函数不
是虚析构函数
,p析构时,因为p是基类指针,所以只调用基类析构函数,而不调用派生类的析构函数。至于A的析构函数是怎样找到A::print,我觉得是查找需函数表。嘿嘿~~~另外print不是被重载,是叫覆盖。你可以查一下概念。
C++中,什么是纯
虚函数
,什么是抽象类,什么
是虚析构函数
答:
一个小例子,你不知道水果是要切开吃还是真接吃。世界上也没有水果这种东西。但是桔子是有的,可以剥开吃,你也可以买到一个。放在程序中的用处是:你可以用一个含有代码的函数去调用一个纯虚函数,因为它是一定会存在的。·纯
虚函数是
一个模糊的类内部的约定,它需要用子类来实现。虚
析构函数
:在...
棣栭〉
<涓婁竴椤
3
4
5
6
8
7
9
10
11
12
涓嬩竴椤
灏鹃〉
其他人还搜