作者:勿忘心安~~
链接:https://www.nowcoder.com/discuss/197611
来源:牛客网

1 C++基础:

 (1)多态是怎么样的?写个样例?

  https://www.cnblogs.com/yichengming/p/11427811.html

 (2)c和c++的区别

  https://www.cnblogs.com/yichengming/p/11427890.html

 (3)什么是虚函数?什么是纯虚函数?

  虚函数是允许被其子类重新定义的成员函数

  虚函数的声明:virtual returntype func(parameter);引入虚函数的目的是为了动态绑定;

  纯虚函数声明:virtual returntype func(parameter)=0;引入纯虚函数是为了派生接口。(使派生类仅仅只是继承函数的接口)

 (4)基类为什么需要虚析构函数?

  防止内存泄漏。假如没有虚析构函数,释放一个由基类指针指向的派生类对象时,不会去触发动态绑定,则只会调用基类的析构函数,不会调用派生类的析构函数。派生类中申请的空间则得不到释放导致内存泄漏。

 (5)当i是一个整数的时候i++和++i哪个更快?它们的区别是什么?

  考虑内建数据类型时,它们的效率差别不大(去除编译器优化的影响)。所以在这种情况下我们大可不必关心。
现在让我们再考虑自定义数据类型(主要是指类)的情况。此时我们不需要再做很多汇编代码的分析了,因为前缀式(++i)可以返回对象的引用,而后缀式(i++)必须产生一个临时对象保存更改前对象的值并返回(实现过自定义类型++运算符定义的就知道),所以导致在大对象的时候产生了较大的复制开销,引起效率降低,因此处理使用者自定义类型(注意不是指内建类型)的时候,应该尽可能的使用前缀式地增/递减,因为他天生体质较佳。

  此外,++i返回的是对象的引用,是一个可以修改的左值。

 (6)当i是一个整数的时候i++和++i哪个更快?它们的区别是什么?

  reserve()用于让容器预留空间,避免再次分配内存;capacity()返回在重新进行分配以前所能容纳的元素数量。

 (7)如何初始化const和static数据成员

  通常在类外申明static,但是static const的整型(bool,char,int,long)可以在类中声明且初始化,static const的其他类型必须在类外初始化(包括整型数组)。

 (8)static和const分别怎么用,类里面static和const可以同时修饰成员函数吗?

  https://www.cnblogs.com/yichengming/p/11428100.html

 (9)指针和引用的区别

本质上的区别是,指针是一个新的变量,只是这个变量存储的是另一个变量的地址,我们通过访问这个地址来修改变量。

而引用只是一个别名,还是变量本身。对引用进行的任何操作就是对变量本身进行操作,因此以达到修改变量的目的。

注:

(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:
int a=1;int *p=&a;
int a=1;int &b=a;
上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。

而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存储单元。

(2)可以有const指针,但是没有const引用(const引用可读不可改,与绑定对象是否为const无关)

注:引用可以指向常量,也可以指向变量。例如int &a=b,使引用a指向变量b。而为了让引用指向常量,必须使用常量引用,如const int &a=1; 它代表的是引用a指向一个const int型,这个int型的值不能被改变,而不是引用a的指向不能被改变,因为引用的指向本来就是不可变的,无需加const声明。即指针存在常量指针int const *p和指针常量int *const p,而引用只存在常量引用int const &a,不存在引用常量int& const a。

(3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)

(4)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;

(5)指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。

(6)"sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小;

(7)指针和引用的自增(++)运算意义不一样;

(8)指针使用时需要解引用(*),引用则不需要;

  (9)什么是

  • emplace / empalce_front / emplace_back
  • 面向对象的?面向对象的特性?有什么优点,比面向过程的语言好在哪?
  • C语言是怎么进行函数调用的?
  • C语言参数压栈顺序?
  • C语言如何处理返回值?

2 操作系统

  (1)进程间七大通信方式

    管道(Pipe)、命名管道(Named pipe)、信号(Signal)、消息队列(Message queue)、共享内存(Shared memory)、套接字(Socket)、信号量(Semaphore)

  https://blog.csdn.net/zhaohong_bo/article/details/89552188

  命名管道和无名管道

  • 堆栈溢出
  • 进程和线程(https://www.cnblogs.com/qianqiannian/p/7010909.html)
  • 守护进程、僵尸进程、孤儿进程,守护进程的作用是什么?
  • · 协程
  • 一个文件被删除了,没有被释放是什么原因呢?
  • 弱类型、强类型、动态类型是什么(https://blog.csdn.net/endlessseaofcrow/article/details/80350347)
  • 自旋锁(https://baike.baidu.com/item/%E8%87%AA%E6%97%8B%E9%94%81/9137985?fr=aladdin)
  • · OPEN的过程
  • READ的过程
  • WRITE的过程     (https://blog.csdn.net/csu_max/article/details/38623053)
  • 操作系统是如何调度进程呢(https://blog.csdn.net/qq_35642036/article/details/82809812)
  • 消息队列
  • · malloc函数具体实现原理
  • 死锁的原因?条件?如何预防?又如何避免?如何解除?

3 TCP网络

  • 概率题

假设一段公路上,1小时内有汽车经过的概率为96%,那么,30分钟内有汽车经过的概率为?

  • 字节序与网络字节序
  • 超时重传、快速重传
  • 客户端服务器通信死锁如何处理?

1) HTTP协议与TCP/IP协议的关系

2) 如何理解HTTP协议是无状态的

3)什么是长连接、短连接?

4)TCP协议的长连接和短连接优点和缺点

  • · 什么是MD5?
  • · 阻塞式IO使用场景
  • · 什么是TCP粘包
  • · 拒绝服务攻击DOS
  • XSS,SQL
  • · HTTPS建立连接的过程
  • 常用的HTTP请求头与响应头

HTTP请求头:

HTTP响应头:

TCP是如何保证有序传输的?

  • · POST可以获取数据吗?就是实现GET方法?

4 数据结构与算法:

  • 堆排序和快速排序 or 快排为什么快呢?
  • 哈希表如何设计?需要利用到磁盘空间。
  • STL中hash_map扩容发生什么?

5 数据库

  

6 其他知识

  • UTF8和GD2312的区别
    • C++多线程对10个文件进行排序

C++面试问题汇总的更多相关文章

  1. 2016年Web前端面试题目汇总

    转载: 2016年Web前端面试题目汇总 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢 ...

  2. 前端面试题目汇总摘录(JS 基础篇)

    JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string typeof null; // o ...

  3. Java面试知识点汇总

    Java面试知识点汇总 置顶 2019年05月07日 15:36:18 温柔的谢世杰 阅读数 21623 文章标签: 面经java 更多 分类专栏: java 面试 Java面试知识汇总   版权声明 ...

  4. 前端教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-资源汇总

    内容精简 资源这么多,多看看多学习再总结肯定是好的.多读读就算看重了不算浪费时间,毕竟一千个读者就有一千个林黛玉,还有温故而知新,说不定多读一些内容,就发现惊喜了呢.不过,在此也精简一些内容,就1~2 ...

  5. ES6面试 知识点汇总(全)

    近期在复习ES6,针对ES6新的知识点,以问答形式整理一个全面知识和问题汇总.(全干货,适合对ES6有一定理解的同学复习,以及ES6面试.) 一.问:ES6是什么? 答: ES6是新一代的JS语言标准 ...

  6. OC 面试问题汇总

    OC 问题汇总: 1. 你如何理解 iOS 内存管理   1. new alloc copy retain这些对象我们都要主动的release或者 autorelease   2. 如果是类方法创建的 ...

  7. Web前端面试题目汇总

    以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中有一些未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正,水平有限,望各位不吝指教.: ...

  8. Linux后台开发面试问题汇总

    个人从事安全后台开发,当然是linux环境下的了.举几个常见的问题.1. 数据结构基础.比如实现一个最简单的哈希表.2. 操作系统基础.linux进程模型,堆/栈的区别,大概的位置,各往哪个方向生长, ...

  9. Angular 2的12个经典面试问题汇总(文末附带Angular测试)

    Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...

  10. 【转】Java方向如何准备BAT技术面试答案(汇总版)

    原文地址:http://www.jianshu.com/p/1f1d3193d9e3 这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改, ...

随机推荐

  1. [Java]Thinking in Java 练习2.14

    题目 在文档中加入各项的HTML列表. 代码 1 // object/Documentation4.java 2 // TIJ4 Chapter Object, Exercise 14, page 9 ...

  2. GAN实战笔记——第五章训练与普遍挑战:为成功而GAN

    训练与普遍挑战:为成功而GAN 一.评估 回顾一下第1章中伪造达・芬奇画作的类比.假设一个伪造者(生成器)正在试图模仿达・芬奇,想使这幅伪造的画被展览接收.伪造者要与艺术评论家(判别器)竞争,后者试图 ...

  3. 『无为则无心』Python基础 — 63、Python中的生成器

    目录 1.为什么要有生成器 2.创建生成器 (1)简单创建生成器 (2)生成器的使用 3.yield关键词 (1)yield关键词说明 (2)send()方法说明 4.使用yield实现斐波那契数列 ...

  4. html续篇及初识爬虫

    今日内容概要 form表单 requests模块 可以模拟浏览器朝服务端发送各式各样的请求 cookie与session requests模块小案例(网站的基本防爬措施) 今日内容详细 form表单 ...

  5. 如何使用 PuTTY 远程连接矩池云主机

    PuTTY 是一款开源的连接软件,用来远程连接服务器,支持 SSH.Telnet.Serial 等协议. 矩池云的主机支持 SSH 登录,以下为使用 PuTTY 连接矩池云 GPU 的使用教程. 如您 ...

  6. laravel json封装

    目录文件下新建一个BaseConttoller控制器 <?php namespace App\Http\Controllers\Task\Task13; use App\Http\Control ...

  7. 微信小程序表单验证(WxValidate使用)

    参考博客: https://www.cnblogs.com/zhangxiaoyong/p/10166951.html https://github.com/wux-weapp/wx-extend/b ...

  8. joblib保存模型和joblib的并行化处理和tqdm

    keep首先是默认first

  9. 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠

    相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...

  10. Eureka 基本教程

    目录 Eureka 基本教程 RestTemplate 使用 Eureka 使用 注册中心 提供者 消费者 Eureka 基本教程 RestTemplate 使用 学习Euraka的同学直接滑到最下面 ...