【C++面经】1-5

发布时间:2026/10/5 18:47:17
【C++面经】1-5 谈一谈对内联函数的理解内联函数指一个函数被inline修饰。在编译时会在调用内联函数的地方展开没有调用函数创建栈帧的开销可有效提高程序运行效率。内联函数主要适用于逻辑简单频繁调用的函数。它相对于宏有类型检查、作用域限制、参数只求值一次等优点。但过度使用会导致代码膨胀反而降低性能。是一种对编译器的一种优化建议编译器最终决定是否内联。struct和class的区别struct的默认访问限定符是publicclass是private。struct的默认继承方式是public,class是private。struct不可以定义模板参数,class可以就像typename一样。C语言中struct是数据的集合,C中class是数据和方法的集合。vector和list的区别vector内存连续在堆中开空间减少大小内存不释放。优点支持随机访问因为内存连续所以高速缓存命中率高时间复杂度O(1)。缺点插入、删除会对数据进行移动时间复杂度O(n)内存不足需扩容。list双向链表堆中开空间内存不连续通过指针对数据进行访问。优点插入、删除数据时间复杂度O(1)。缺点空间不连续不支持随机访问查找数据时间复杂度O(n)。常量指针和指针常量常量指针例如const int* p;指针指向的内容只能读不能改。指针常量例如int* const p;指针的指向不能改但内容可以改。malloc/free和new/delete的区别共同点都从堆上申请空间都需要手动释放。不同点1.malloc申请空间不会初始化new会初始化。2.malloc申请空间时需要手动计算发小new只需要传类型即可。3.malloc的返回值是void*使用需要强转,new不需要。4.malloc申请失败的返回值是NULL需要对返回值判断new申请失败会抛异常。5.申请自定义对象时malloc只开空间不调用构造函数free只会释放空间不调用析构函数。new申请空间后会调构造函数完成初始化delete释放空间前会调析构函数清除空间内的资源。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询