什么函数不能声明为虚函数?

 我来答
leeazy
2017-04-01 · TA获得超过221个赞
知道答主
回答量:120
采纳率:86%
帮助的人:18.4万
展开全部
inline, static, constructor ,template 函数都不能 为虚函数,而析构函数可以。
为什么呢:
inline: 编译器替换; 而虚函数是为了解决运行期间绑定。
static:class 成员; 编译期间就给class了。
constructor: 构造函数表示要生成一个class的object;假设是virtual的,那就说不知道这个实例化derived还是based的class。但是类型实例化必须在编译期确定(否则编译器不知道到底是什么对象了)
template:模板实例是在 compile-time,virtual就意味着在run-time确定。这让编译器设计者为难了,这就是说虚函数表要指向各种版本的 template function 实例,代码设计者confuse,编译器设计者也觉得蛮烦。
匿名用户
2015-02-13
展开全部
C语言就没有虚函数这个概念 C++中 构造函数不能声明为虚函数静态成员函数不能声明为虚函数类的模版成员函数不能声明为虚函数内联函数不能为虚函数 没分啊!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式