c++的构造函数能不能用virtual修饰?

 我来答
示垢测h
推荐于2016-10-08 · 知道合伙人教育行家
示垢测h
知道合伙人教育行家
采纳数:3286 获赞数:35851
本人现就读于山东理工大学化学工程学院,性格开朗,乐于助人,经常阅读化学类相关书籍。

向TA提问 私信TA
展开全部
  c++的构造函数不能用virtual修饰。因为构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。通常析构函数才会用virtual修饰。

  C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 ,面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性。
nin_cool
2014-10-10 · 超过12用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:14.2万
展开全部
不能。在子类构造的时候肯定要先构造父类的构造函数的。其次,构造函数运行时,类还没有完全构造好,虚函数列表还没有初始化好。建议看看Effective C++ 条款9:http://www.cnblogs.com/lidan/archive/2012/01/13/2321726.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ewe922
2015-10-16
知道答主
回答量:39
采纳率:0%
帮助的人:10.4万
展开全部
不能,因为构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。

http://blog.csdn.net/freeboy1015/article/details/7635012
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞火凌峰
2014-10-10 · TA获得超过179个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:176万
展开全部
不能,因为构造函数用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。

http://blog.csdn.net/freeboy1015/article/details/7635012
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式