c++工程师面试问题


Posted in 面试题 onAugust 04, 2013

   C++软件工程师面试问题

  1、 c++是面向对象的编程语言吗?C++中虚函数(virtual) 是什么?有什么好处?

  (1)C++不是纯面向对象的语言,C++是面向对象和过程的,因为C++支持类和过程。

  (2)虚函数(virtual)具有传递性,即子类中对父类的虚函数的重写,也是一个虚函数 ,不过函数的参数表也要一样。

  (3)可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的成员函数(只要派生类改写了该成员函数)。若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都会调用基类中定义的那个函数。

  2、 谈谈指针和引用的区别?

  指针用操作符“*”和“->”,引用使用操作符“&”.

  相同点是:指针与引用都是让你间接引用其他对象。

  区别:(1). 指针是一个实体,指向一块内存,它的内容是所指内存的地址;而引用仅是个别名,是某块内存的别名。

  (2). 引用使用时无需解引用(*),指针需要解引用;

  (3). 引用只能在定义时被初始化一次,之后不可变,“从一而终”;指针可变;

  (4). 引用没有 const类型,指针有 const类型,const 的指针不可变;

  (5). 引用不能为空,指针可以为空;

  (6). “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。

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

  3. int m = 100,n = 101;

  int &k = m;

  k = n; //此时K,m值分别是多少 ?

  k和m的值都是101,因为k是对m的引用,k值发生变化,m值也发生着变化。

  4、 c++中 const修饰符一般用于那几种情况,具体作用是什么?

  (1).用常量定义 const int n = 100;

  用于常量参数 即 fn(const int & a)

  用于常量函数,即类的该函数不修改其状态。

  用于返回值

  (2).可以定义const常量,具有不可变性; 便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患; 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性;为函数重载提供了一个参考; 可以节省空间,避免不必要的内存分配;提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

  5、 你在程序代码中用assert吗?assert一般用于做什么?

  (1) 是我常用。

  (2)主要用于DEBUG下断言,即假设一定是这样的,否则就是错误的。例如 asser ( a > 100 );

  6、 i++ 相比 ++i 哪个更高效?为什么?

  答:(1)++i 比 i++效率高。

  (2)i++要多调用一次类的构造和析够函数

  7、 windows平台下网络编程有哪几种网络编程模型?你最熟悉的是哪种?并对他们作个比较?

  (1)有阻塞,,基于窗体的事件模型,事件模型,重叠模型,完成端口模型。

  (2)我最熟悉的是事件模型。

  (3)除了阻塞模型外,其他都是非阻塞模型,其中效率最高的是完成端口模型,尤其在windows下服务器最合适了。

  做客户端一般用事件模型了,,在window和like unix都可以使用。

  8、 tcp进行传输时,接收方怎么告诉发送方“我已经处理不过来了,先不要再发数据给我。”

  答:接受方给发送方发一个通知数据包,该通知包让发送方暂停数据的发送,或方慢发送。等接受方处理完毕后,再发一个恢复的通知数据包。

  9、 设计udp网络协议包设计 包多大合适,为什么?

  答:最好设计成MTU的大小,MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。这样的话传输速度会快。

    10、win2000/win2003个有几个版本,每个版本最新系统补丁包是什么?

  11、DNS的实现方法?

  12、WEB服务器的负载均衡?

  13、请问目前市面上常用几种网络操作系统的优缺点?

  14、请问你用过那些服务器?请讲述raid0、1、5的特点和优点?

  15、请列出下列协议的段口号:HTTP、HTTPS、DNS、FTP、TELNET、PPTP、SMTP、POP3?

  16、请问局域网内想要通过UNC路径或者NETBIOS名称访问对方计算机,需要在对方计算机上开放什么协议或者端口?

  17、OSI七层模型?TCP/IP模型?

  18、能否将WIN2000P升级成WIN2000S?



Tags in this post...

面试题 相关文章推荐
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
Nov 29 面试题
C++面试题:关于链表和指针
Jun 05 面试题
SQL里面IN比较快还是EXISTS比较快
Jul 19 面试题
STP的判定过程
Oct 01 面试题
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
Dec 12 面试题
逻辑链路控制协议
Oct 01 面试题
linux面试题参考答案(4)
Jan 28 面试题
说一下Linux下有关用户和组管理的命令
Aug 18 面试题
GWebs公司笔试题
May 04 面试题
写clone()方法时,通常都有一行代码,是什么?
Oct 31 面试题
精选干货:Java精选笔试题附答案
Jan 18 面试题
SOA的常见陷阱或者误解是什么
Oct 05 面试题
2019年c语言经典面试题目
Aug 17 #面试题
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
Dec 07 #面试题
请写出char *p与"零值"比较的if语句
Sep 24 #面试题
iostream与iostream.h的区别
Jan 16 #面试题
经典c++面试题六
Jan 18 #面试题
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
Aug 09 #面试题
下面关于"联合"的题目的输出是什么
Aug 06 #面试题
You might like
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
简单的JS多重继承示例
2008/03/13 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
Python实现FM算法解析
2019/06/18 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
基于Python实现粒子滤波效果
2020/12/01 Python
几个常见的软件测试问题
2016/09/07 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
六一儿童节标语
2014/10/08 职场文书
社区植树节活动总结
2015/02/06 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
初三语文教学反思
2016/03/03 职场文书
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers