这算是一个系列吧,记录一下在准备秋招期间,所准备的C++面试题,望秋招顺利。所有的面试题均来源于各大论坛,网络。

C/C++常考面试题(一)

  1. 常用的C++数据结构有哪些?

    • vector,序列式容器,相当于数组,顺序表;
    • list, 双向链表
    • deque,双端队列,queue,队列,stack,栈,priority_queue,优先级队列
    • map,set,multimap,multiset
    • hashtable,散列表
    • 图,树等等
  2. 什么是虚函数,多继承有什么问题
    • 被virtual关键字修饰的成员函数,就是虚函数
    • 多继承可能会发生重复继承的情况,从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致的问题,二义性的问题。解决办法虚继承
  3. 为什么要用虚析构函数,什么是多态
    • 在多态中,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生
    • 多态可以简单地概括为“一个接口,多种方法”,在程序运行的过程中才决定调用的函数。多态性是面向对象编程领域的核心概念。多态性是允许你将父对象设置成为和它的一个或更多的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单地说就是一句话,允许将子类类型的指针赋值给父类类型的指针。多态性在C++中都是通过虚函数(Virtual Function)实现的。
  4. 进程和线程的区别和联系
    • 定义

      • 进程是程序的一次执行,是程序在一个数据集合上运行的过程,是一个动态概念,是系统进行资源分配和管理的基本单位。
      • 线程是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位,也称为轻型进程,是可执行的实体单元。
    • 区别
      • 地址空间和其他资源:进程间相互独立,同一进程的各线程间共享。某进程的线程在其他进程中不可见。

        • 每一个进程都有一个自己的地址空间,即进程空间。进程空间的大小只与机器位数有关。一个进程崩溃后,在保护模式下不会对其他进程产生影响。而线程只是一个进程中的不同执行路径,每一个线程有自己的堆栈和局部变量,但是没有自己独立的地址空间,每个线程共享其所属进程的资源。一个线程死掉等于整个进程死掉,所以多进程的程序要比多线程的程序健壮。
      • 通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信,但是需要相关同步和互斥手段的辅助,以保证数据的一致性。
      • 调度和切换:线程的上下文切换比进程的上下文切换快得多。
      • 一个程序至少有一个进程,一个进程至少有一个线程
      • 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

C/C++常考面试题(一)的更多相关文章

  1. Java常考面试题

    Java常考面试题 1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...

  2. C/C++常考面试题(二)

    网上看到的面经,说是dynamic_cast的实现,和RTTI的相关,这才发现原来对这个概念这么模糊,所以作了这个总结. C/C++常考面试题(二) RTTI(Runtime Type Informa ...

  3. C++常考面试题汇总

    c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...

  4. C++常考面试题汇总(持续更新中)

    c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...

  5. 变量和关系符和JAVA基本类型笔记与常考面试题

    变量的类型:数值型:整型(byte,short,int,long).浮点型(float,double)非数值型:布尔类型(boolean),字符型(char),字符串类型(String),其他引用型 ...

  6. .net常考面试题

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...

  7. vue常考面试题

    组件中 data 什么时候可以使用对象? 这道题其实更多考的是 JS 功底: 组件复用时所有组件实例都会共享 data,如果 data 是对象的话,就会造成一个组件修改 data 以后会影响到其他所有 ...

  8. javaScript ES5常考面试题总结

    js的六种原始值 boolean null undefined number string symbol 坑1: 首先原始类型存储的都是值,是没有函数可以调用的,比如 undefined.toStri ...

  9. Mybatis常考面试题汇总(附答案)

    1.#{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是预编译处理,${}是字 ...

随机推荐

  1. 信号处理——Hilbert变换及谱分析

    作者:桂. 时间:2017-03-03  23:57:29 链接:http://www.cnblogs.com/xingshansi/articles/6498913.html 声明:转载请注明出处, ...

  2. Couchbase 中的分布式储存

    Couchbase 是一个具有高性能.可扩展性和可 用性强的数据库引擎.它可以让开发人员通过 NoSQL 的键值存储(二进制或者JSON)或者使用 N1QL 的形式对数据进行操作(N1QL 是非常类似 ...

  3. Linux使用小笔记<安装篇>

    问题一:在windows下删除ubuntu并修复引导windows启动. 1. 下载MBRFix工具,放在c盘,利用命令提示符,进入软件所在目录,cd c:\mbrfix 2.输入 MBRFix /d ...

  4. vs2017 .net core WebApp 去掉ApplicationInsights

    vs2017新建的 .net core WebApp都内置了这个遥测中间件进去,嗯,用AZURE的话是不错能无缝支持.但不用AZURE就没什么用了. 为了不占地方和提高一点点初始启动的速度,对新建的项 ...

  5. C++ 容器对象vector和list 的使用

    在<<c++ primer>>第四版Exercise Section 9.3.4 的Exercise 9.20 是这样的一道题目:编写程序判断一个vector<int&g ...

  6. Ionic android 底部tabs

    ionic android tabs 默认显示在上部,如果要跟苹果一起统一在底部,那么可以在app.js添加配置 .config(function($ionicConfigProvider) { $i ...

  7. RabbitMQ-从基础到实战(2)— 防止消息丢失

    转载请注明出处 1.简介 RabbitMQ中,消息丢失可以简单的分为两种:客户端丢失和服务端丢失.针对这两种消息丢失,RabbitMQ都给出了相应的解决方案. 2.防止客户端丢失消息 如图,生产者P向 ...

  8. js提交表单错误:document.form.submit() is not a function

    今天在写JS时,遇上这么个错误:"document.form.submit() is not a function",经过一番搜索,最终找到了修复方法. 这个错误一般是由于表单&l ...

  9. 关于Tarjan(1)

    众所周知, 求有向图的强连通分量的Tarjan算法是以其发明者Robert Tarjan命名的.Robert Tarjan还发明了求双连通分量的Tarjan算法,以及求最近公共祖先(LCA)的离线Ta ...

  10. javascript中构造StringBuffer实例

    function StringBuffer(){      this.strings = new Array;  }    StringBuffer.prototype.append=function ...