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...

面试题 相关文章推荐
包装类的功能、种类、常用方法
Jan 27 面试题
怎么处理XML的中文问题
Mar 26 面试题
判断单链表中是否存在环
Jul 16 面试题
杭州信雅达系统.NET工程师面试试题
Feb 08 面试题
私有程序集与共享程序集有什么区别
Apr 05 面试题
金士达面试非笔试
Mar 14 面试题
Windows和Linux动态库应用异同
Apr 17 面试题
Linux如何压缩可执行文件
Oct 21 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
Jul 24 面试题
垃圾回收的优点和原理
May 16 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
Nov 22 面试题
WSDL的操作类型主要有几种
Jul 19 面试题
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
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
JS实现密码框效果
2020/09/10 Javascript
用vue写一个日历
2020/11/02 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
Python注释详解
2016/06/01 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
python实现决策树分类(2)
2018/08/30 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Python pandas如何向excel添加数据
2020/05/22 Python
python 实现音频叠加的示例
2020/10/29 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
授权委托书怎么写
2014/04/03 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers