笔试面试题目小结
Denkensk
这个作者很懒,什么都没留下…
展开
-
静态成员和非静态成员
原创 2015-03-04 22:31:39 · 387 阅读 · 0 评论 -
构造函数和析构函数
要想搞明白该问题,需要理解基类构造析构函数、子类构造析构函数和子类成员变量构造析构函数的调用顺序。 对于构造函数:基类构造函数 > 子类成员变量构造函数 > 子类构造函数 对于析构函数:子类析构函数 > 子类成员变量析构函数 > 基类析构函数 可以看出构造函数的调用过程和析构函数的调用过程正好相反。 main函数中首先构造变量a,然后是b。在构造b时首先调用b的基类A的构造函数原创 2015-03-04 22:25:55 · 632 阅读 · 0 评论 -
C++为什么使用模板类
C++使用模板类的作用:(1)可用来创建动态增长和减小的数据结构 (2)它是类型无关的,因此具有很高的可复用性。 (3)它在编译时而不是运行时检查数据类型,保证了类型安全 (4)它是平台无关的,可移植性 (5)可用于基本数据类型原创 2015-03-04 22:10:32 · 1640 阅读 · 0 评论 -
虚函数
Base * pb = new Child(1), 首先创建子类对象,初始化为1; func1()不是虚函数,所以pb->func1()执行的是基类的func1函数,i= 10,然后调用func2()函数; 这里的func2是虚函数,要往下派生类寻找,找到后执行派生类中的func2(),此时,i = 12; 最后执行pb->getValue(),结果为12 故选C原创 2015-03-04 22:18:07 · 380 阅读 · 0 评论 -
关于继承、组合、多态的一道面试题
选D,使用相同函数名但参数个数不同或参数类型不同应该是函数重载,函数覆盖发生在父类与子类之间,其函数名、参数类型、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做函数覆盖。原创 2015-03-04 22:15:10 · 532 阅读 · 0 评论 -
静态数据成员
static数据成员必须在类体之外进行定义。通常在定义时才进行初始化。但是,当类型为const static时的整形时可以在类体内进行初始化。因此A有正确的地方,但是也有错误的情况,因此不选A。 A错误。只有基本类型的静态常量才可以在类内初始化。 B错误。静态数据成员可以被类的对象调用。 C错误。静态数据成员可以被private之类的修饰作用,被private修饰之后,只有类的友元和成员原创 2015-03-04 22:19:16 · 730 阅读 · 0 评论 -
二叉树后序非递归遍历超酷的方法
pre-order traversal is root-left-right, and post order is left-right-root. modify the code for pre-order to make it root-right-left, and then reverse the output so that we can get left-right-root .原创 2015-03-24 17:58:41 · 599 阅读 · 0 评论