- 3
- 0
- 约2.81万字
- 约 9页
- 2016-08-22 发布于河南
- 举报
c不能声明为虚函数的函数及解释
c++不能声明为虚函数的函数及解释
C++中不能声明为虚函数
2011-09-03 18:12:53| 分类: 默认分类 |字号 订阅
常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。
1.为什么C++不支持普通函数为虚函数?
普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。
2.为什么C++不支持构造函数为虚函数?
这个原因很简单,主要是从语义上考虑,所以不支持。因为构造函数本来就是为了明确初始化对象成员才产生的,然而virtual function主要是为了再不完全了解细节的情况下也能正确处理对象。另外,virtual函数是在不同类型的对象产生不同的动作,现在对象还没有产生,如何使用virtual函数来完成你想完成的动作。(这不就是典型的悖论)
3.为什么C++不支持内联成员函数为虚函数?
其实很简单,那内联函数就是为了在代码中直接展开,减少函数调用花费的代价,虚函数是为了在继承后对象能够准确的执行自己的动作,这是不可能统一的。(再说了,inline函数在编译时被展开,虚函数在运行时才能动态的邦定函数)
4.为什么C++不支持静态成员函数为虚函数?
这也很简单,静态成员函数对于每个类来说只有一份代码,所有的对象都共享这一份代码,他也没有要
您可能关注的文档
- 2014-2015学年度第一学期八年级期中考试物理试题.doc
- 20141025练习四.doc
- 2014《成才之路》高一物理(人教版)必修1能力提升:1-1 质点 参考系和坐标系.doc
- 2014届饶平二中高三级语文当堂训练(一).doc
- 2014常州会计继续教育考试题及答案.doc
- 2014国考考行测特点——重者恒重,特色依旧.doc
- 2014年云南省公务员考试行测预测经典练习题.doc
- 2014年全国高考连贯得体题.doc
- 2014年公需课——城乡一体化发展考核作业2.doc
- 2014年区阳光大联赛冬季长跑规程.doc
- Unit2HealthyLifestyleReadingandThinking课件高中英语人教版选择性.pptx
- Unit5MusicReadingandThinkingTheVirtualChoir课文精读课件-高中英语人教版.pptx
- 课时2平行四边形的判定2课件人教版数学八年级下册_1.pptx
- Unit4NaturalDisastersDiscoveringUsefulStructures课件-高中英语人教版(1).pptx
- Unit5SignsFuntimeSoundtimeCulturetime(课件)-译林版(2012)英语六年级上册.pptx
- 高中一年级语文必修上册《我与地坛(节选)》深度复习知识清单.docx
- 高三一轮复习课件地球运动专题天文观测月球与月相.pptx
- 第1课时线段垂直平分线的性质和判定课件湘教版(级上册.pptx
- 第2课时二次根式的性质_2.pptx
- 子主题三身心健康抗挫能力珍爱生命的意识.pptx
原创力文档

文档评论(0)