构造函数能为虚函数吗?

C/C++ > C语言 [问题点数:0分]
等级
本版专家分:5
结帖率 100%
等级
本版专家分:581
勋章
Blank
状元 2000年 总版技术专家分年内排行榜第一
Blank
金牌 2000年11月 总版技术专家分月排行榜第一
2000年10月 总版技术专家分月排行榜第一
Blank
红花 2001年2月 Web 开发大版内专家分月排行榜第一
2000年11月 Web 开发大版内专家分月排行榜第一
2000年10月 Web 开发大版内专家分月排行榜第一
2000年11月 VC/MFC大版内专家分月排行榜第一
2000年10月 VC/MFC大版内专家分月排行榜第一
2000年11月 VB大版内专家分月排行榜第一
2000年10月 VB大版内专家分月排行榜第一
Blank
黄花 2000年12月 Web 开发大版内专家分月排行榜第二
等级
本版专家分:7612
勋章
Blank
红花 2001年9月 C/C++大版内专家分月排行榜第一
2001年8月 C/C++大版内专家分月排行榜第一
Blank
黄花 2001年7月 C/C++大版内专家分月排行榜第二
等级
本版专家分:5
等级
本版专家分:581
勋章
Blank
状元 2000年 总版技术专家分年内排行榜第一
Blank
金牌 2000年11月 总版技术专家分月排行榜第一
2000年10月 总版技术专家分月排行榜第一
Blank
红花 2001年2月 Web 开发大版内专家分月排行榜第一
2000年11月 Web 开发大版内专家分月排行榜第一
2000年10月 Web 开发大版内专家分月排行榜第一
2000年11月 VC/MFC大版内专家分月排行榜第一
2000年10月 VC/MFC大版内专家分月排行榜第一
2000年11月 VB大版内专家分月排行榜第一
2000年10月 VB大版内专家分月排行榜第一
Blank
黄花 2000年12月 Web 开发大版内专家分月排行榜第二
等级
本版专家分:55
等级
本版专家分:15
等级
本版专家分:0
等级
本版专家分:1415
勋章
Blank
红花 2000年1月 C/C++大版内专家分月排行榜第一
等级
本版专家分:31
ab
等级
本版专家分:218
soloist

等级:

什么构造函数能为虚函数

问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数虚函数。 2,从使用角度  虚函数主要用于在信息不全的情况下,...

构造函数和析构函数可以是虚函数什么?

三、构造函数和析构函数可以是虚函数什么? 1、构造函数 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,...

C++ 构造函数和析构函数可以是虚函数嘛?

构造函数虚函数 1. 从vptr角度解释 虚函数的调用是通过虚函数表来查找的,而虚函数表由类的实例化对象的vptr指针(vptr可以参考C++的虚函数表指针vptr)指向,该指针存放在对象的内部空间中,需要调用构造...

构造函数可以为虚函数吗?

那么问题来了,如果构造函数虚函数,就要通过vtable来调用,可是对象空间还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数虚函数。 从使用角度 虚函数主要用于在信息不全的情况下,能够...

什么构造函数声明为虚函数?

构造函数声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数构造函数声明为虚函数的原因是: 1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的...

构造函数中能调用虚函数实现多态吗?

1、对象在创建的时,由编译器对VPTR指针进行初始化 2、只有当对象的构造完全结束后VPTR的指向才最终确定 ...2、当执行父类的构造函数时,c1.vptr指针先指向父类的虚函数表,当父类的构造函数执行完毕后,会把c...

(面试)构造函数可以为虚函数吗?不

虚函数对应一个vtable,这大家都知道,可是这个...问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数虚函数。 2,从使用

构造函数虚函数 基类析构函数必须为虚函数

1,从存储空间角度 虚函数对应一...所以构造函数虚函数。 vtbl是在编译期就建立了,各个虚函数这时被组织成了一个虚函数的入口地址的数组.而对象的隐藏成员--vptr是在运行期--也就是构造函数被调用时进行初...

构造函数能虚函数????

一、构造函数能为虚函数的理由:  1,从存储空间角度  虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,...

C++中什么构造函数能为虚函数

什么构造函数声明为虚函数? 1.创建一个对象必须明确指出它的类型,否则无法创建,一个对象创建成功编译器获得它的实际类型,然后去调用对应的函数,而如果构造函数声明虚函数,会形成一个死锁,虚函数是在...

构造函数能否为虚函数,析构函数能否为虚函数

一、构造函数为什么不能为虚函数 1. 从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的。问题出来了,假设构造函数是虚的,就须要...

构造函数什么不调用虚函数?

构造函数什么不调用虚函数? 构造函数调用层次会导致一个有趣的两难选择。试想:如果我们在构造函数中并且调用了虚函数,那么会发生什么现象呢?在普通的成员函数中,我们可以想象所发生的情况——虚函数的...

构造函数为什么不能为虚函数(2019面试题)

还没有实例化,也就是内存空间还有办法找到vtable,所以构造函数虚函数。 二、从使用角度 构造函数本来就是要初始化实例,那么使用虚函数也没有实际意义呀,所以构造函数没必要是虚函数。而虚函数的作用是...

C++中构造函数声明为虚函数

构造函数声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。 不建议在构造函数和析构函数里面调用虚函数构造函数声明为虚函数的原因是: 1 构造一个对象的时候,必须知道对象的实际...

构造函数能声明为虚函数,析构函数呢什么?

一:构造函数声明为虚函数的原因? 构造一个对象时,必须知道对象实际类型,而虚函数是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功,编译器就无法知道对象的实际类型,是该类本身,...

C++中什么构造函数定义为虚函数

关于C++什么不支持虚拟构造函数,Bjarne很早以前就在C++Style and Technique FAQ里面做过回答 Avirtual call is a mechanism to get work done given partialinformation. In particular, "virtual" allows us to...

C++构造函数和析构函数中可以调用虚函数吗?

这个问题来自于《Effective C++》条款9:永远不要在构造函数或析构函数中调用虚函数 。 简要结论:  1. 从语法上讲,调用完全没有问题。  2. 但是从效果上看,往往不达到需要的目的。  Effective 的解释是:...

构造函数能虚函数

如果构造函数是虚的,就需要通过 虚函数表来调用,可是对象还没有实例化,也就是内存空间还没有,就没有虚函数表,所以构造函数虚函数。 2.虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成...

构造函数中调用虚函数

#include <iostream> using namespace std; class A { public: A() { this->fun(); } virtual void fun() { cout << "A fun" << endl; } }; class B :public A { ... t...

构造函数中调用虚函数?

问题在于构造函数中调用虚函数无法实现多态。 看下面的代码: class A { public: A() { show(); }//行4 virtual void show() { cout ; } void anotherShow(){show();}//行6 }; class B:public A { public

构造函数虚函数

构造函数为什么不使虚函数 1.虚函数对应一个虚指针,虚指针其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过 虚指针执行那个虚函数表(编译期间生成属于类)来调用,可是对象还没有实例化,也就是...

构造函数、析构函数是否要定义为虚函数?

1、基类的构造函数能为虚函数,因为对象不完整 2、不要在构造函数和析构函数里面调用虚函数,可能会发生未定义的行为 eg: 构造派生类对象时,首先调用基类构造函数初始化对象的基类部分。在执行基类构造函数时,...

C++中构造函数能调用虚函数吗?

C++中构造函数能调用虚函数吗? 分类: C++ Win322011-08-31 00:07 4481人阅读 评论(8) 收藏 举报 c++class编译器c汇编java  环境:XPSP3 VS2005  今天黑总给应聘者出了一个在C++的构造函数中...

什么构造函数不可以声明为虚函数,而析构函数可以

构造函数声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数

C++:构造函数和析构函数能否为虚函数

C++:构造函数和析构函数能否为虚函数? 简单回答是:构造函数能为虚函数,而析构函数可以且常常是虚函数。 (1) 构造函数能为虚函数 让我们来看看大牛C++之父 Bjarne Stroustrup 在《The C++ Programming ...

在父类的构造函数中调用虚函数可以实现多态么?

在父类的构造函数中调用虚函数是不能够实现多态的,这个问题涉及到vptr指针的初始化问题。 比如在构造子类对象c时,执行到父类的构造函数时,这个c.vptr指向的是父类的虚函数表,这时调用虚函数,执行的是父类的...

c++的构造函数为什么不是虚函数,而基类的析构函数必须是虚函数?

构造函数为什么不虚函数呢?  首先需要了解 vptr指针和虚函数表的概念,以及这两者的关联。  vptr指针指向虚函数表,执行虚函数的时候,会调用vptr指针指向的虚函数的地址。  当定义一个对象的时候,首先...

C++构造函数和析构函数什么不调用虚函数?

构造函数里面包含virtual函数的情况 先看一段代码 class Transaction {// 所有交易的基类 public:  Transaction();  virtual void logTransaction() const = 0;//建立依赖于具体交易类型的登录项  ... }...

什么构造函数声明为虚函数,析构函数可以

构造函数声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数构造函数声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型...

构造函数和析构函数可以调用虚函数

这个问题来自于《Effective C++》条款9:永远不要在构造函数或析构函数中调用虚函数 。 简要结论: 1. 从语法上讲,调用完全没有问题。 2. 但是从效果上看,往往不达到需要的目的。 Effective 的解释是: 派生...

相关热词 c#异步什么时候执行 c# 开源 管理系统 c#对象引用 c#正则表达式匹配文件名 c# 开源库 c#两个程序间通信 c# 区块链特点 c# xml 如何写 c# 线程池 锁 c#设置代理服务器