(转载)C++面试宝典2011版 (21)

c++函数同名不同返回值不算重载!函数重载是忽略返回值类型的。 

--------------------------------------------- 
成员函数被重载的特征有: 
1) 相同的范围(在同一个类中); 
2) 函数名字相同; 
3) 参数不同; 
4) virtual关键字可有可无。

5) 成员函数中 有无const (函数后面) 也可判断是否重载

118.数据库与T-SQL语言
   

关系数据库是表的集合,它是由一个或多个关系模式定义。SQL语言中的数据定义功能包括对数据库、基本表、视图、索引的定义。

119.关系模型的基本概念

关系数据库以关系模型为基础,它有以下三部分组成:
    ●数据结构——模型所操作的对象、类型的集合
    ●完整性规则——保证数据有效、正确的约束条件
    ●数据操作——对模型对象所允许执行的操作方式
    关系(Relation)是一个由行和列组成的二维表格,表中的每一行是一条记录(Record),每一列是记录的一个字段(Field)。表中的每一条记录必须是互斥的,字段的值必须具有原子性。

120.SQL语言概述


    SQL(结构化查询语言)是关系数据库语言的一种国际标准,它是一种非过程化的语言。通过编写SQL,我们可以实现对关系数据库的全部操作。
    ●数据定义语言(DDL)——建立和管理数据库对象
    ●数据操纵语言(DML)——用来查询与更新数据
    ●数据控制语言(DCL)——控制数据的安全性

起来是一个很简单的问题,每一个使用过RDBMS的人都会有一个概念。

事务处理系统的典型特点是具备ACID特征。ACID指的是Atomic(原子的)、Consistent(一致的)、Isolated(隔离的)以及Durable(持续的),它们代表着事务处理应该具备的四个特征:

原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分

一致性:在事务处理执行之前和之后,数据是一致的。

隔离性:一个事务处理对另一个事务处理没有影响。

持续性:当事务处理成功执行到结束的时候,其效果在数据库中被永久纪录下来。

121.C语言中结构化程序设计的三种基本控制结构

顺序结构 
选择结构 
循环结构

122.CVS是什么

cvs(Concurrent Version System) 是一个版本控制系统。使用它,可以记录下你的源文件的历史。 

例如,修改软件时可能会不知不觉混进一些 bug,而且可能过了很久你才会察觉到它们的存在。有了 cvs,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个 bug。有时这是很有用的。

CVS服务器端对每个文件维护着一个修订号,每次对文件的更新,都会使得文件的修订号加1。在客户端中也对每个文件维护着一个修订号,CVS通过这两个修订号的关系,来进行Update,Commit和发现冲突等操作操作

123.三种基本的数据模型

按照数据结构类型的不同,将数据模型划分为层次模型、网状模型和关系模型。

124.设计模式:工厂模式 和 单例模式 介绍一下?
工程模式即将对象创建过程封装即为工厂模式。
单例模式即整个类只有一个对象,并且不允许显示创建。

125.vector 和 list的区别?
vector内部使用数组,访问速度快,但是删除数据比较耗性能
list内部使用链表,访问速度慢,但是删除数据比较快

126.纯虚函数是怎样实现的?在编译原理上讲一下?
在类内部添加一个虚拟函数表指针,该指针指向一个虚拟函数表,该虚拟函数表包含了所有的虚拟函数的入口地址,每个类的虚拟函数表都不

一样,在运行阶段可以循此脉络找到自己的函数入口。

纯虚函数相当于占位符,先在虚函数表中占一个位置由派生类实现后再把真正的函数指针填进去。除此之外和普通的虚函数没什么区别。

127.抽象类为什么不能实例化?
抽象类中的纯虚函数没有具体的实现,所以没办法实例化。

128.在函数后面加个const是怎么理解的?

在函数后面加个const一般在类的成员函数中使用,表示这个函数不修改数据成员的值。

另:void set_prt_val(int val)const {*ptr= val}理解:指针ptr指向的内容不是类的数据成员,所以这可这么写:*ptr = val;但这个指针在这个函数中不能修改。如果写成这样:ptr = &i(假设i是另外一个整形变量)就不对了,因为改变了指针的内容。

129.进程间通信类型:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwfdg.html