77问答网
所有问题
当前搜索:
析构函数中调用虚函数
C++中“
析构函数中调用虚函数
采用静态联编”为什么正确?
答:
在构造函数和析构函数中调用虚函数,
编译系统对构造函数和析构函数中调用虚函数采用静态联编
,因为它们所调用的虚函数是自己的类,或者基类中定义的函数而不是在任何派生类中重定义的函数。所有这句话说的是正确的。下面介绍一些相关知识:什么是静态联编:即在编译过程中进行联编被称为静态联编(static b...
c++中
析构函数中
可以
调用虚函数
么
答:
c++中 析构函数中不可以调用虚函数
。effective C++ 中有这样的描述:同样的原因也适用于析构过程。一旦派生类析构函数运行,这个对象的派生类数据成员就被视为未定义的值,所以 C++ 就将它们视为不再存在。C++中派生类在构造时会先调用基类的构造函数再调用派生类的构造函数,析构时则相反,先调用派生...
构造、
析构函数
可否为virtual
答:
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数
。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:解释一:所谓虚函数就是多态情况下只执行一个。而从继承的概念来讲,总是要先构造父类对象,然后才能是子类对象。如果构造函数设为虚函...
C++运行时多态的选择题,帮帮新手吧
答:
答案是D 解释:A:构造函数不能声明为虚函数,但在构造函数中可以调用虚函数.在构造函数或
析构函数中调用虚函数
,将采用静态联编 B,C,D:构造函数不能声明为虚函数,但析构函数可以声明为虚函数.当基类的析构函数声明为虚函数时,无论派生类是否使用virtual关键字说明,派生类的析构函数一定是虚函数,而且,...
关于虚
析构函数
的
调用
问题
答:
虚函数存放在类的虚表中,虚函数的调用如果不是显示调用的话,默认是调用子类的虚函数
。当基类的析构函数是虚函数的时候,子类继承基类的虚函数,所以子类的析构函数也是虚函数。如上面的例子,虽然new CExtend赋值给了CBase *PBase,但当调用delete pBase时,由于虚函数的动态关联,首先调用的是子类中...
构造函数和
析构函数调用
的顺序
答:
如果一个类不可能是基类就不要申明
析构函数
为虚函数,虚函数是要耗费空间的。2.析构函数的异常退出会导致析构不完全,从而有内存泄露。最好是提供一个管理类,在管理类中提供一个方法来析构,调用者再根据这个方法的结果决定下一步的操作 3.在构造函数不要
调用虚函数
。在基类构造的时候,虚函数是非...
为什么用VC++时,生成失败?
答:
4。试图从基类的构造函数或
析构函数中调用虚函数
会导致LNK2001。5。注意函数和变量的效用,只有全局变量,函数是可以在公共场合。静态函数和静态变量具有相同的使用限制。当试图访问外部文件 没有在文件中声明的静态变量会导致一个编译错误LNK2001。函数声明的变量(局部变量)只能被使用的功能的范围内。C +...
C++中
虚函数
的作用是什么?它应该怎么用呢?
答:
C++中虚函数的作用:1、简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。2、实现多态性,多态性是将接口与实现进行分离。3、当基类指针指向一个子类对象,通过这个指针
调用
子类和基类同名成员函数的时候,基类声明为虚函数就会调子类的这个函数,不声明就会调用基类的。C++
中虚函数
的用法:1、...
C++ 为什么将
析构函数
定义为纯
虚函数
编译器报错一个无法解析的外部指令...
答:
例如你这个继承的序列,Waiter析构时,就会
调用
Worker的
析构函数
,这个函数不可以是纯
虚函数
。道理也不难理解,每个类都要为自己对象的析构自己负责,也就是说必须正确析构自己类的对象,没有其他类会为你的析构负责。所以你需要给Worker的析构函数提供一个实现,例如:Worker::~Worker(){} 函数体里...
析构函数
为什么总是
虚函数
答:
所以建议的方式是将
析构函数
声明为
虚函数
。如果你使用MFC,并且以CObject或其派生类为基类,那么MFC已经为你做了这件事情;CObject的析构函数是虚函数。一个函数一旦声明为虚函数,那么不管你是否加上virtual 修饰符,它在所有派生类中都成为虚函数。但是由于理解明确起见,建议的方式还是加上virtual 修饰...
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
构造函数中可以调用虚函数吗
构造函数声明为虚函数
哪些函数可以被声明为虚函数
哪些函数不能被声明为虚函数
静态函数和静态成员函数
函数参数优先采用指针类型
非对称算法比对称算法慢
String
hashmap和hashtable的区别