社区
C++ 语言
帖子详情
构造函数可以是虚函数吗?
yiezi0919
2007-06-24 09:31:17
请问大家:构造函数可以是虚函数吗?
为什么?请回答具体点。
...全文
5097
38
打赏
收藏
构造函数可以是虚函数吗?
请问大家:构造函数可以是虚函数吗? 为什么?请回答具体点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
38 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lishengkai
2011-11-08
打赏
举报
回复
不可以 构造函数不可能为虚 构造函数是用来创建一个对象的 必须要明确知道所要创建的对象是个什么东西
LIN
2011-11-08
打赏
举报
回复
mark
dream17953
2010-06-03
打赏
举报
回复
构造函数 好像可以吧。
longfeihufengyun
2010-06-03
打赏
举报
回复
mark
嘎文
2010-04-01
打赏
举报
回复
语法上没说不可以,之前有人问过这个问题,我试过,程序可以通过编译,而且能运行,只不过不知道,类复杂了,出现虚的构造函数会有什么结果。
N喽的类似f() = 0;的写法是纯虚函数,跟虚函数不完全一样的。
ShineShineRedStar
2010-04-01
打赏
举报
回复
ls们说得很清楚了,我来总结下:不可以。
johndotcom
2010-04-01
打赏
举报
回复
不可以,也没有任何意义。构造对象的偶合是很高的,factory模式是解决这个问题的其中一个方法。
冬雨在路上
2010-04-01
打赏
举报
回复
不可以,构造函数主要用于初始化吧
尹立
2007-07-11
打赏
举报
回复
要是把构造函数写成虚拟的就会有这个错误
'inline' is the only legal storage class for constructors
要是把构造函数设置成虚拟的,就算编译不出问题,那子类也不允许去重写这个函数
这样看来好像一点意义都无
个人见解~~
都重名了比较难起
2007-07-11
打赏
举报
回复
mark!
Champagne_meng
2007-07-11
打赏
举报
回复
不可以。构造函数是独一无二的。
sopecj_seu
2007-07-10
打赏
举报
回复
不可以,构造函数主要用于初始化吧?
jinwei1984
2007-07-10
打赏
举报
回复
mark
tricolors
2007-07-10
打赏
举报
回复
学习
gernal_dn
2007-07-10
打赏
举报
回复
不可以!道理很简单:虚函数的入口,是在生成对象时填入VMT表里的,而构造函数是用于对象初时化的,两者在逻辑上存在层次关系,就是说,逻辑上这个VMT表是由构造函数填写的(当然,这个操作是隐含的,构造函数内并没有相应代码,这些代码在统一的对象生成机制里),所以,逻辑上,构造函数无法虚化。
corder_li
2007-07-10
打赏
举报
回复
不可以.
构造函数只作用于该类对象,负责初始化.如果有虚拟的话,A类的对象用B类构造函数初始化,这显然是不合适的
白錵錵
2007-07-10
打赏
举报
回复
还不结贴.等P呢.
canybox
2007-07-09
打赏
举报
回复
N楼以上的一句话就可以了;
虚函数的目的在于多态,而构造函数用于构造本类的对象实体,因此对它进行多态处理是很不恰当的。
tmhlcwp
2007-07-09
打赏
举报
回复
刚看了thinking in c++,上面讲的基本清楚
yiezi0919
2007-06-30
打赏
举报
回复
谢谢大家!
加载更多回复(17)
构造函数
可以为
虚函数
吗?
面试管问你,
构造函数
可以为
虚函数
吗?如果你知道,你可以勇敢的反问,能不要问这么简单的问题吗?如果你不知道,请记住这个答案-----不能! 以下是copy一个CSDN大佬写的博客,刚好我是后者! 从存储空间角度 ...
构造函数
可以是
虚函数
吗?不看看你就亏大了
假设
构造函数
是
虚函数
,
虚函数
存在于
虚函数
表中, 而去找
虚函数
表又需要
虚函数
指针, 而
虚函数
表指针又存在于对象中, 这样就矛盾了: 都没有生成对象, 哪有什么
虚函数
表指针呢? 那么问题又来了,析构函数可以是...
构造函数
和析构函数可以是
虚函数
吗?为什么?
三、
构造函数
和析构函数可以是
虚函数
吗?为什么? 1、
构造函数
从存储空间角度,
虚函数
对应一个指向vtable
虚函数
表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,...
为什么
构造函数
不能是
虚函数
?析构函数可以是
虚函数
吗?
构造函数
不能声明为
虚函数
,析构函数可以声明为
虚函数
,而且有时是必须声明为
虚函数
。 抽象类中构造和析构均不能使用纯
虚函数
。 为什么
构造函数
不能声明为
虚函数
呢? 1、构造一个对象的时候,必须知道对象的实际...
构造函数
和析构函数能否是
虚函数
构造函数
不能是析构函数,析构函数可以是
虚函数
构造函数
不能是
虚函数
,因为
虚函数
是基于对象的,
构造函数
是用来产生对象的,若
构造函数
是
虚函数
,则需要对象来调用,但是此时
构造函数
没有执行,就没有对象存在,...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章