当前位置: 首页 > wzjs >正文

专做品牌的网站百度官方网站

专做品牌的网站,百度官方网站,电商网站的建设案例,做网站的目录 1.引言 2.示例 3.总结 1.引言 为什么C的虚函数和内联函数这两个看似矛盾的特性能否共存?这个问题实际上触及了C编译期优化与运行时多态性之间的微妙平衡。我发现这个问题不仅是面试中的常见陷阱,更是理解C深层机制很好的一个点。 虚函数可以被声…

目录

1.引言

2.示例

3.总结


1.引言

        为什么C++的虚函数和内联函数这两个看似矛盾的特性能否共存?这个问题实际上触及了C++编译期优化与运行时多态性之间的微妙平衡。我发现这个问题不仅是面试中的常见陷阱,更是理解C++深层机制很好的一个点。 虚函数可以被声明为内联函数(使用inline关键字),但这并不意味着它总能被内联展开。关键在于:当虚函数表现出多态性时(通过指针或引用调用),它不能被内联;而当编译器能确定调用的具体对象时,内联是可能的。

2.示例

在 C++ 里,虚函数能够被声明为内联函数,不过这要分情况来看:

编译阶段的内联处理

在编译时,如果编译器能够确切知道虚函数的具体调用对象,那么这个虚函数就可以进行内联处理。看下面这个例子:

class Base {
public:inline virtual void func() { std::cout << "Base::func()\n"; }
};class Derived : public Base {
public:inline void func() override { std::cout << "Derived::func()\n"; }
};int main() {Base b;b.func(); // 编译时就能确定调用的是Base::func(),可内联return 0;
}

在这个例子中,由于bBase类型的对象,在编译阶段就能够明确调用的是Base::func(),所以编译器可以对其进行内联处理。

运行阶段的虚函数调用

当通过基类指针或者引用调用虚函数时,到底调用哪个类的虚函数要在运行时才能确定,这种情况下就无法进行内联。例如:

Base* ptr = new Derived();
ptr->func(); // 运行时通过虚函数表调用,无法内联

此时,函数调用是通过虚函数表来实现的,内联机制就不起作用了。

内联声明的实际作用

值得注意的是,即使我们使用inline关键字,最终是否内联仍由编译器决定。现代编译器通常会:

  • 为每个可能的多态调用生成一个非内联函数体

  • 对确定类型的直接调用尝试内联

  • 在确定的优化级别下可能忽略inline请求或内联未标记的函数

3.总结

  • 从语法层面来说,虚函数可以被声明为内联函数。
  • 当虚函数通过对象(而不是指针或引用)调用,并且编译器能够确定具体的调用对象时,虚函数才有可能被内联。
  • 要是虚函数的调用需要动态绑定,那么内联就无法实现。
  • 最终是否进行内联,由编译器根据具体情况来决定。
http://www.dtcms.com/wzjs/487581.html

相关文章:

  • 怎么修改自己的网站seo关键词的优化技巧
  • 门户网站建站注意事项贵州萝岗seo整站优化
  • 南城网站建设公司方案有没有推广app的平台
  • 网站建设在哪里做百度推广
  • 网站做多大的宽高百度网站如何优化排名
  • 布吉网站的建设免费建设个人网站
  • 网站网站百度我的订单
  • weaver网页制作seo属于什么职业部门
  • 南京做网站南京乐识最优北京做网页的公司
  • 天津做网站的费用怎么弄属于自己的网站
  • 天津企业如何建网站推广产品吸引人的句子
  • 建立公司网站需要什么新媒体营销推广方案
  • 上海网站设计公司排行榜关键词排名监控
  • 做免费小说网站怎样赚钱seo外包 靠谱
  • 如何做网站规范百度站长
  • 北京公司网站建设服务seo排名优化关键词
  • 网站不备案可以做微信小程序么通过qq群可以进行友情链接交换
  • 射洪县住房和城乡建设局网站百度文库登录入口
  • 平台搭建图片seo排名方案
  • 网站平台做推广方案设计上海百度seo公司
  • linux建设门户网站网站网络推广推广
  • 郑州网站设计制作价格百度问一问客服人工在线咨询
  • 有系统源码可以做网站吗网络营销的未来发展趋势
  • 超低价的锦州网站建设重庆人社培训网
  • 建营销型网站全国疫情高峰感染进度
  • 网站策划与制作网推渠道
  • 做网站要的带宽是什么搜狗搜索网
  • 网站文章超链接怎么做把百度网址大全设为首页
  • 如何添加网站营销型外贸网站建设
  • iOS开发 隐私政策网站怎么做中文搜索引擎排名