1 静态全局变量的作用域
本文件
2 判断一个程序是C还是C++编译的
#ifdef __cplusplus
cout << "c++";
#else
cout << "c";
#endif
3 C++函数传递方式
值传递,引用传递,指针传递
4 虚函数定义及用法
虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。
在有动态分配堆上内存的时候,析构函数必须是虚函数,但没有必要是纯虚的。
定义一个函数为虚函数,不代表函数为不被实现的函数。
定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。
定义一个函数为纯虚函数,才代表函数没有被实现。
虚函数只能借助于指针或者引用来达到多态的效果。
(1):只有类成员函数才能声明为虚函数,是因为虚函数只适用于有继承关系的类对象中。
(2):静态成员函数不能说明为虚函数,因为静态成员函数不受限与某个对象,整个内存中只有一个,所以不会出现混淆的情况
(3):内联函数不可以被继承,因为内联函数是不能子啊运行中动态的确认其位置的。
(4):构造函数不可以被继承。
(5):析构函数可以被继承,而且通常声明为虚函数。
5 C和C++的不同
6 C和C++中struct有什么区别;C++中struct和class有什么区别
C的struct没有protection行为,而C++有,默认是private
C的struct不可以定义函数,但可以有函数指针,而C++可以定义函数
C++的class和struct的默认继承权限和成员的默认访问权限不同,struct是public权限,class是private权限
7 int id[sizeof(unsigned long] 是否正确,为什么
正确,这个sizeof是编译时的运算符,编译时就确定了,可以看成和机器有关的常量
8 “new”in C++ is a
operator
9 变量的指针含意是指变量的
地址。地址值是内存中的字节编号,指针只有内存中字节编号的一部分
10 多态的作用
隐藏实现细节,使得代码能够模块化,扩展代码模块,实现代码复用
接口重用,为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性的正确调用
11 多态类中的虚函数表是Compile-Time,还是Run-Time时建立的
虚函数表在编译时就建立了,各个虚函数此时被组织成一个虚函数的入口地址的数组,而对象的隐藏成员—虚拟函数表指针是在运行时,也就是构造函数被调用时进行初始化的,这是实现多态的关键
12 面向对象的三个基本特征,简述
封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection
继承:继承有三种实现形式,实现继承,可视继承,接口继承,实现继承,可视继承称为类继承与接口继承构成了接口复用的两种方式
多态:允许将子类类型的指针赋值给父类类型的指针
13 内联函数在编译时是否做参数类型检查
内联函数要做参数类型检查,这是内联函数相比宏的优势
14 内存的分配方式
静态存储区域分配
在栈上创建
在堆上分配
15 对于一个频繁使用的短小函数,C和C++中应用什么实现
C用宏定义,C++用inline