https://blog.csdn.net/worldwindjp/article/details/18909079

C++面试题——基础概念篇

唐璐
http://blog.csdn.net/worldwindjp/

面试C++程序员的时候一般都是3板斧,先是基础问答,然后一顿虚函数、虚函数表、纯虚函数、抽象类、虚函数和析构函数、虚函数和构造函数。接着拷贝构造函数、操作符重载、下面是STL,最后是智能指针。
       都能挺过去那基本知识这关应该算是过了,下面就是项目背景和算法了。

1,C++和C相比最大的特点
                   1)面向对象:封装,继承,多态。
                   2)引入引用代替指针。
                   3)const /inline/template替代宏常量。
                   4)namespace解决重名的问题。
                   5)STL提供高效的数据结构和算法
     
     2,你知道虚函数吗
     答案:实现多态所必须,父类类型的指针指向子类的实例,执行的时候会执行之类中定义的函数。
     
     3,析构函数可以是虚函数吗?
     答案: 如果有子类的话,析构函数必须是虚函数。否则析构子类类型的指针时,析构函数有可能不会被调用到。

4,多态的实现。
     答案:简而言之编译器根据虚函数表找到恰当的虚函数。对于一个父类的对象指针类型变量,如果给他赋父类对象的指针,那么他就调用父类中的函数,如果给他赋子类对象的指针,他就调用子类中的函数。函数执行之前查表。

5,虚函数表是针对类还是针对对象的?
     答案:虚函数表是针对类的,一个类的所有对象的虚函数表都一样。
     
     6,纯虚函数和虚函数有什么区别
     答案:纯虚函数就是定义了一个虚函数但并没有实现,原型后面加"=0"。包含纯虚函数的类都是抽象类,不能生成实例。

7,构造函数可以是虚函数吗?
     答案:每个对象的虚函数表指针是在构造函数中初始化的,因为构造函数没执行完,所以虚函数表指针还没初始化好,构造函数的虚函数不起作用。

 8,构造函数中可以调用虚函数吗?
     答案:就算调用虚函数也不起作用,调用虚函数同调用一般的成员函数一样。

9,析构函数中可以调用虚函数吗?
     答案:析构函数中调用虚函数也不起作用,调用虚函数同调用一般的成员函数一样。析构函数的顺序是先派生类后基类,有可能内容已经被析构没了,所以虚函数不起作用。

10,虚继承和虚基类
     答案:虚继承是为了解决多重继承出现菱形继承时出现的问题。例如:类B、C分别继承了类A。类D多重继承类B和C的时候,类A中的数据就会在类D中存在多份。通过声明继承关系的时候加上virtual关键字可以实现虚继承。

C++面试题(一)——基础概念篇相关推荐

  1. 【软件测试】基础-概念篇

    软件测试基础-概念篇 记录 - 慕课网 imooc 软件测试基础-概念篇 简介:系统介绍什么是软件测试,从软件测试的定义.原则以及测试阶段.测试模式.测试手段和测试类型分别详细说明软件测试中的各种测试 ...

  2. 模型推理部署——基础概念篇

    模型推理部署--基础概念篇 训练(training)vs推理(inference) 训练是通过从已有的数据中学习到某种能力,而推理是简化并使用该能力,使其能快速.高效地对未知的数据进行操作,以获得预期 ...

  3. 常见面试题整理--Python概念篇

    所属网站分类: 面试经典 > python 作者:骷髅无悔 原文链接: http://www.pythonheidong.com/blog/article/471/ 来源:python黑洞网 w ...

  4. Python+Dash快速web应用开发——基础概念篇

    作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...

  5. [转载] 网络游戏程序员须知 基础概念篇

    转载自:https://blog.csdn.net/rellikt/article/details/5878447 本文为作者原创或翻译,转载请注明,不得用于商业用途. 作者:rellikt@gmai ...

  6. 数据结构与算法——从零开始学习(一)基础概念篇

    系列文章 第一章:基础知识 第二章:线性表 第三章:栈和队列 第四章:字符串和数组 第五章:树和二叉树 第六章:图 第七章:排序算法 前言 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合 ...

  7. Android Service的绑定 基础概念篇

    Creating a Bound Service 绑定Service的作用: 一个绑定的service(bound service)是客户端-服务器接口中的服务器. 绑定的service允许组件(比如 ...

  8. 数据集成之主数据管理(一)基础概念篇

    数据集成是当下比較热门的话题,相关的产品和平台也越来越多.非常多CIO都在各种数据集成平台和产品之间犹豫不决.因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据 ...

  9. Win32多线程编程(1) — 基础概念篇

    内核对象的基本概念 Windows系统是非开源的,它提供给我们的接口是用户模式的,即User-Mode API.当我们调用某个API时,需要从用户模式切换到内核模式的I/O System Servic ...

最新文章

  1. Exception经验之谈,万万没想到被很多团队采纳!
  2. 【MySQL性能优化的21个最佳实践】
  3. 英文版的java项目简历_java开发英文简历范文
  4. 手机app系统软件开发报价单及方案:费用明细
  5. 基于Java和Netty实现的联机版坦克大战游戏
  6. VS使用NPOI替换word模板中的关键字
  7. 《深度学习之美》第1章
  8. FPGA--ZCU106通过SFP+/SGMII模块传输数据-第二讲(全网唯一)
  9. c语言求数字b在a中出现次数,编写一个函数void fun(char *tt,int pp[]),统计在tt字符中a到z26各字母各自出现的次数,并依次放在pp所指的数组中。...
  10. 4 Kubernetes资源-Pod控制器(1)
  11. mate7安装android o,华为Mate7怎么刷机 华为Mate7刷机教程【步骤详解】
  12. 游戏建模都要用到哪些软件?3d游戏建模用什么软件容易
  13. Autoar之 CAN NM网络管理
  14. java ecb加密_AES(Rijndael)算法ECB模式加密
  15. cad相贯展开图lisp_cad相贯线的画法
  16. python, echarts 实现世界地图地域流向地图
  17. Oday安全 11.6利用加载模块之外的地址绕过SafeSEH一节注记---jmp [ebp+N] (下)
  18. java语言(3):通俗易懂的泛型
  19. 最新通知:中国科学院大学调整2022年秋季入学博士研究生招生考试方式
  20. 如何用 openssl 生成RSA双密匙;签名证书;加密文件邮件

热门文章

  1. 前端开发:Vue3.0提示警告Avoid app logic that relies on enumerating keys on a component instance… 的解决方法
  2. Phoenix 之旅
  3. nervos联创吕国宁:产业区块链与公链结合才是未来
  4. 以前章鱼保罗做的预测,现在有企业专门在做了~
  5. [02-14] 绿色免费软件更新
  6. 丹枫虽老犹多态 – 继承与多态
  7. WordPress Qui-Pure V2.22发布纯文本主题-暗黑模式
  8. 打造自己的弱口令扫描工具
  9. QQ生肖星座关系测试
  10. Dockerfile 简单例子