c++中十道面试题(一),可以看看喔

1.CVS 是什么
 cvs ( Concurrent Version System ) 是一个版本控制系统。使用它,可以记录下你的源文件的历史。
 
例:修改软件时可能会不知不觉混进一些 bug ,而且可能过了很久你才会察觉到它们的存在。有了 cvs ,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个 bug 。有时这是很有用的。
 
CVS 服务器端对每个文件维护着一个修订号 , 每次对文件的更新,都会使得文件的修订号加 1 。在客户端中也对每个文件维护着一个修订号 ,CVS 通过这两个修订号的关系,来进行 Update,Commit 和发现冲突等操作操作
2.C 语言中结构化程序设计的三种基本控制结构
 顺序结构
 选择结构
 循环结构
3. 有关重载函数
 
返回值类型不同构不成重载
 参数参数顺序不同能构成重载
 
c++ 函数同名不同返回值不算重载!函数重载是忽略返回值类型的。
 
成员函数被重载的特征有:
 1) 相同的范围(在同一个类中);
 2) 函数名字相同;
 3) 参数不同;
 4) virtual 关键字可有可无。
 
5) 成员函数中 有无 const ( 函数后面 ) 也可判断是否重载
4.说一说C与C++的内存分配方式?1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,如全局变量,static变量。2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。3)从堆上分配(动态内存分配)程序在运行的时候用malloc或new申请任意多少的内存,程序员负责在何时用free或delete释放内存。动态内存的生存期自己决定,使用非常灵活。
5. C++ 中的 class 和 struct 的区别
 从语法上,在 C++ 中(只讨论 C++ 中)。 class 和 struct 做类型定义时只有两点区别:
 (一)默认继承权限。如果不明确指定,来自 class 的继承按照 private 继承处理,来自 struct 的继承按照 public 继承处理;
 (二)成员的默认访问权限。 class 的成员默认是 private 权限, struct 默认是 public 权限。
 除了这两点, class 和 struct 基本就是一个东西。语法上没有任何其它区别。
 
不能因为学过 C 就总觉得连 C++ 中 struct 和 class 都区别很大,因为 struct 和 class 本来就是基本一样的东西,无需多说
6.Itearator 各指针的区别
 
游标和指针
 
我说过游标是指针,但不仅仅是指针。游标和指针很像,功能很像指针,但是实际上,游标是通过重载一元的 ”*” 和 ”->” 来从容器中间接地返回一个值。将这些值存储在容器中并不是一个好主意,因为每当一个新值添加到容器中或者有一个值从容器中删除,这些值就会失效。在某种程度上,游标可以看作是句柄( handle )。通常情况下游标( iterator )的类型可以有所变化,这样容器也会有几种不同方式的转变:
 
iterator—— 对于除了 vector 以外的其他任何容器,你可以通过这种游标在一次操作中在容器中朝向前的方向走一步。这意味着对于这种游标你只能使用 “++” 操作符。而不能使用 “–” 或 “+=” 操作符。而对于 vector 这一种容器,你可以使用 “+=” 、 “—” 、 “++” 、 “-=” 中的任何一种操作符和 “” 、 “>=” 、 “==” 、 “!=” 等比较运算符
7. 什么是动态特性?在绝大多数情况下, 程序的功能是在编译的时候就确定下来的, 我们称之为静态特性. 反之, 如果程序的功能是在运行时刻才能确定下来的, 则称之为动态特性。C++中, 虚函数,抽象基类, 动态绑定和多态构成了出色的动态特性。
8.C++ JAVA 共同点,不同之处?
 
相同点:都是面向对象的语言
 不同点:c/c++是编译型语言,还有一些语言完全是解释型的,而java既是编译型的又是解释型的语言
 c/c++存在指针运算,而java有指针,但取消了指针的运算
9.什么是封装?C++中是如何实现的?封装来源于信息隐藏的设计理念, 是通过特性和行为的组合来创建新数据类型让接口与具体实现相隔离。C++中是通过类来实现的, 为了尽量避免某个模块的行为干扰同一系统中的其它模块,应该让模块仅仅公开必须让外界知道的接口.

10. 求下面函数的返回值(微软)
 
 
假定 x= 9999 。 答案: 8
 将 x 转化为 2 进制,看含有的 1 的个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值