C++笔试题汇总_51CTO博客_c++笔试题有答案.docxVIP

  • 0
  • 0
  • 约1.14万字
  • 约 33页
  • 2026-10-29 发布于河南
  • 举报

C++笔试题汇总_51CTO博客_c++笔试题有答案.docx

C++笔试题汇总_51CTO博客_c++笔试题有答案

1.单项选择题(共10题)

(1)关于C++虚函数表的内存分布,以下说法正确的是()

A.每个包含虚函数的类实例会存储一份完整的虚函数表副本

B.虚函数表在编译阶段生成,存储在进程的只读数据段

C.派生类继承基类虚函数表时,会完全覆盖基类的虚函数指针,不保留基类虚函数条目

D.虚函数调用的动态绑定是在编译阶段确定调用地址的

答案:B

解析:虚函数表是类级别的共享数据,同一类的所有实例共享同一份虚函数表,每个实例仅在内存起始位置存储一个虚表指针(vptr)指向对应的虚表,因此A错误;虚函数表由编译器在编译阶段生成,存储在进程的只读数据段(.rodata),不允许运行期修改,B正确;派生类继承基类时,若未重写基类虚函数,虚表中对应条目会保留基类函数的地址,仅重写的函数会被替换为派生类的函数地址,多继承场景下派生类会维护多个虚表分别对应不同基类子对象,不会完全丢弃基类的虚函数条目,C错误;动态绑定是运行期通过对象的虚表指针查找虚函数地址实现的,编译期仅能确定虚函数在虚表中的偏移量,无法确定最终调用地址,D错误。

(2)以下const修饰的代码片段中,存在语法错误的是()

A.constinta=10;int*p=const_castint*(a);*p=20;

B.intb=20;c

文档评论(0)

1亿VIP精品文档

相关文档