C++面试问题总结
转自:http://blog.csdn.net/wangtengqiang/article/details/8061806
1.static用法
static 的成员函数和成员变量,可直接通过类名::函数名或类名::变量名直接访问,该函数名和变量名仅跟类相关联
在函数名里定义的static变量,改变它的存储结构,多次调用该函数时,该变量仅被初始化一次
全局变量与static的静态变量。改变它的作用域,全局变量的范围是整个程序,而static的静态变量的范围仅有该模块
2.多态的机制
编绎器会为继承体系上的每一个类创建一个虚函数表,表中的每一次指向虚函数的地址。
每个对象都会有一个虚指针指向虚函数表
通过父类指针就可以访问到子类的函数
3.引用跟指针
引用必须被初始化,且引用被初始化之后就不能再修改
4.vector<>缺陷,?vector.resize()与vector.reserve()?
vector添加数据的时候,有时需要重新申请一片空间,一般是2倍,然后把原来的数据复制过来,并回收原来的资源
vector.resize()会调用构造函数
5.虚析构
能让父类指针为了调用子类的析构函数
6.map的底层是?
红黑树
7.排序
8.仿函数类
9.智能指针 auto_ptr shared_ptr
10.C++的四种转换,dynamic_cast<>与普通的转换有什么不同
http://welfare.cnblogs.com/articles/336091.html
11.struct对齐
struct A
{
int a;
char b;
int c;
}
sizeof(A) = 12;
struct B
{
int a;
char b;
char c
}
sizeof(B) = 8
12.迭代器的五种类型
只读迭代器
只写迭代器
向前的可读可写迭代器
能向前能向后的可读可写迭代器
随机迭代器
13.二分查找
14.最长子序列和 ( O(n) )
15.i++与++i
++i的效率高
16.宏定义与内联函数区别,有什么缺陷
宏定义是在预处理时对代码替换
内联函数具有函数的性质,能进行内型检查,它在编译时对代码替换
17.寻找最大K个数
快速排序的思想
18.new与malloc有什么区别
new是操作符,可调用构造函数
malloc是C标准库函数,不调用构造函数
19.SOCKET通信
TCP:
服务端:
创建SOCKET对象
绑定地址
设置监听个数
等待监听(accept)
客户端:
创建SOCKET对象
connect服务器
开始通信
最后关闭SOCKET对象
UDP:
服务端:
创建SOCKET对象
绑定地址
设置异步监听或调用receive进行得等待
客户端:
创建SOCKET对象
绑定地址
调用send通信
最后关闭SOCKET对象
20.三次握手
第一次,客户端向服务器发送请求,序号SYN=i;,进入SYN_SEND状态
第二次,服务端接受请求并对客户端发出应答,序号SYN=i+1,同时服务端也发送请求,序号为SYN=j,服务端进入SYN_RECEIVE状态
第三次,客户端接受服务端的请求并发出应答,序号SYN=j+1,此包发送完毕后,进入establish状态
21.进程调度,进程通信,线程同步
进程通信方式:SOCKET,消息队列,共享内存,信号量,管道
进程调度:先来先服务,优先级调度,时间轮转片,多级反馈
线程同步:互斥锁,临界区,信号量,信号量
22.多线程有什么缺陷
对全局变量的访问有危险
23.a[100] ={a,b,c} a[5] = 0
a[100] a[5]未知
24. A GetA() , A& GetA() , A * GetA() ,有什么区别,缺陷
A& GetA()返回的是引用,当返回一个局部变量的引用,对象在函数执行结束后就被释放了
A * GetA()返回的是指针,当返回一个局部变量的指针,对象在函数执行结束后就被释放了,当返回的数据是堆上的数据,则要考虑释放
A GetA()返回的是值,不需要担心前两个的影响,返回时会调用构造函数,降低效率
25.海量数据(比如找最大的IP访问量之类的)
网上有很多实例
26.推荐看看《编程之美》,不用全看.
27.《C++primer》(不需要全看,懂的就可以不用看),《Effective C++》,《Effecitve STL》,当然还有 数据结构与算法了
28.熟悉strstr,strcmp,strlen,strcpy之类的C 标准库函数源码.
百度百科上
29.char a[]="abc"与char *b = "abc"的区别
char a[] = "abc"是数组,在栈上的数组,并初始化为abc
char *b = "abc"在全局区内申请一块内存并初始化为abc,然后指针b指向它
C++面试问题总结的更多相关文章
- C++常见笔试面试要点以及常见问题
1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...
- [Java面经] 关于面试的二三事.
今天终于闲下来了, 那么也好总结下这几天面试的经历.四天的时间一共面了七家, 有一家是自己推迟了没有去.声明:如若转载请注明出处:http://www.cnblogs.com/wang-meng/p/ ...
- 在面试中忽然发现DateTime的一些...
今天说说我面试中碰到的一个小问题,在我问起DateTime为什么无法赋值NULL值,一般第一反应都认为它是值类型,不是引用类型,但随后我查阅了度娘自我学习到它是结构类型,那么随之而然就无法赋值NULL ...
- 2016年8月ios面试问题总结
1.app分发方式 所谓分发方式简单点讲就是你的app都可以通过哪些途径给用户使用. a:个人或者公司的开发者账号 可以上传appStore,用户通过appStore下载. b:企业账号:打包分发. ...
- 记2016腾讯 TST 校招面试经历,电面、笔试写代码、技术面、hr面,共5轮
(出处:http://www.cnblogs.com/linguanh/) 前序: 距离 2016 腾讯 TST 校招面试结束已经5天了,3月27日至今,目前还在等待消息.从投简历到两轮电面,再到被 ...
- Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...
- Android面试经验 -- 乐视
此次投的是三年经验的Android开发,最后反而因为自己的失误,没有准备充分而导致结果很悲剧,以此告诫自己千万不能疏忽大意. 面试过程 第一次去大公司面试,心里不是一般的激动和紧张,来到乐视大厦门口, ...
- Android面试一天一题(1Day)
写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...
- Java面试基础概念总结
面向对象软件开发的优点有哪些? 答:开发模块化,更易维护和修改:代码之间可以复用:增强代码的可靠性.灵活性和可理解性. 多态的定义? 答:多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力. ...
- 【干货分享】前端面试知识点锦集04(Others篇)——附答案
四.Others部分 技术类 1.http状态码有哪些?分别代表是什么意思? (1).成功2×× 成功处理了请求的状态码.200 服务器已成功处理了请求并提供了请求的网页.204 服务器成功处理了请求 ...
随机推荐
- 红领的短板:线下“O”瓶颈_财经频道_一财网
红领的短板:线下"O"瓶颈_财经频道_一财网 红领的短板:线下"O"瓶颈
- WKWebview点击图片查看大图
大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其 ...
- 关于Hibernate脏检查与快照
脏检查 Session到底是如何进行脏检查的呢?当一个Customer对象被加入到Session缓存中时,Session会 为Customer对象的值类型的属性复制一份快照.当Session清理缓存时 ...
- How to Read, Write XLSX File in Java - Apach POI Example---reference
No matter how Microsoft is doing in comparison with Google, Microsoft Office is still the most used ...
- 大数据笔记05:大数据之Hadoop的HDFS(数据管理策略)
HDFS中数据管理与容错 1.数据块的放置 每个数据块3个副本,就像上面的数据库A一样,这是因为数据在传输过程中任何一个节点都有可能出现故障(没有办法,廉价机器就是这样的) ...
- Tomcat 加入windows 服务自启动设置
基于J2ee技术开发,可以运行在Tomcat.weblogic.websphere等J2ee应用服务器上,对于一般访问量不是很高的客户我们推荐使用Tomcat(开源免费),一般情况下Tomcat服务需 ...
- oracle的concat的用法
select concat( concat( concat( ( select area_name from ec_area where area_id ), ( select area_name f ...
- Asp 图形化报表
1 图形化的报表的优点 分析.统计业务数据 表现直观,漂亮,有震撼效果的图形化的方式展现业务数据 复杂的业务数据简单化 2 常用的报表组件 HighCharts:是纯js编写的图形化报表 水晶报表 ...
- css布局之负margin妙用及其他实现
相信大家在项目的开发中都遇到过这样的需求,一行放X(X>1)个块且相邻块之间的间距相同. 大概就是上面这个样子,下面介绍几种实现的方式. 1.负margin大法 设置好元素的宽度和留白占满父级的 ...
- sqlyog使用注意事项
在sqlyog中执行sql语句时,如果sql语句没有加limit 0,1000; sqlyog会自动查询从0开始的1000条,结果导致mysql慢查系统中显示的sql语句末尾加上了limit 0,10 ...