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 服务器成功处理了请求 ...
随机推荐
- 红米note不好用
手感不错 拍摄效果暗,没有调好 有死机现象
- jsp 常用9大内置对象
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ...
- SKLabelNode类
继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架 /System/L ...
- Android ImageView 点击更换头像
首先搭建布局 主界面布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
- Spring-----1、Spring一个简短的引论
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVrZXdhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- 查看linux版本号的几种方法
(1)lsb_release 命令查看,FSG(Free Standards Group)组织开发的LSB (Linux Standard Base)标准的一个命令,用来查看linux兼容性的发行版信 ...
- 动态图片 gif
简介 android不推荐使用gif图片,一般都是png的,对于gif的图片解析比较消耗资源,但是对于一些动态gif图片的播放,如果比较小的话还是可以的,要是大的话,建议还是把gif图片转换成一帧一帧 ...
- 95秀-dialog 进度对话框 实用工具
工具Util public class DialogUtil { public static ProgressDialogView progressDialog; /** * ...
- JAVAEE学习
首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它 ...
- 让页脚footer永远固定在页面的底部,而不是永远固定在显示器屏幕的底部的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...