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 服务器成功处理了请求 ...
随机推荐
- java vm内存设置
1.普通java应用程序,使用java命令运行, java -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -jar 2. ...
- Flask-SQLAlchemy获取一个字段里去掉重复的数据
注意:可排序的列表内元素不可以是字典等复杂数据类型 比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))prin ...
- 这是一个在Windows live 上实验的文章
这是一个windows 实验用的文章,希望一次成功
- UITouch附加
框架 /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKNode.h 概览 重要提示:这是一个初步的 ...
- 标C编程笔记day06 动态分配内存、函数指针、可变长度參数
动态分配内存:头文件 stdlib.h malloc:分配内存 calloc:分配内存,并清零 realloc:调整已分配的内存块大小 演示样例: in ...
- Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)
原文地址:http://blog.csdn.net/sttyytw/article/details/17005263 声明:本教程在參考了下面博文,并经过自己的摸索后实际操作得出,本教程系本人原创,因 ...
- [Redux] Reducer Composition with Arrays
In the previous lesson we created a reducer that can handle two actions, adding a new to-do, and tog ...
- 布局动画 LayoutAnimation
简介 http://blog.csdn.net/pipisky2006/article/details/8317091 补间动画只能对一个控件使用,如果要对某一组控件播放一样的动画的话,可以考虑lay ...
- 看android的书的体会
android书上面的代码有时候有问题,可以在网上搜索这些功能.网上和官方文档里面有很好的说明和例子.
- HTTP状态码(HTTP Status codes)简介
HTTP可能大家都熟悉,就是超文本传输协议.浏览器通过HTTP与WEB Server通讯(也有一些其它软件比如IM使用HTTP协议传递数据),把我们的请求(HTTP Request)传递给服务器,服务 ...