一、纯虚函数与抽象类
1.下列关于纯虚函数与抽象类的描述中,错误的是( )。
C.一个基类的说明中有纯虚函数,该基类的派生类一定不再是抽象类
抽象类派生的类必须提供纯虚函数的实现代码,或在该派生类中仍将它说明为纯虚函数,否则将出错。
此时说明了纯虚函数的派生类仍是抽象类。如果派生类中实现了基类所有纯虚函数,则该派生类将不再是抽象类。
2.如果A是抽象类,刚下面正确的是( )。
D.A * pa;
一个抽象类只能作为基类来派生新类,不能说明抽象类的对象,但可以说明指向抽象类的指针或引用。
3.动态编联所支持的多态性称为运行时的多态性,支持的函数是( )。
D.虚函数
动态联编所支持的多态性称为运行时的多态性,由虚函数实现。
4.说明纯虚函数的一般形式为"____"。
class类名{
virtual 函数类型 函数名(参数列表) = 0;
};
许多情况下,不能在基类中为虚函数给出一个有意义的定义,此时可将它说明为纯虚函数,将其定义留给派生类去做,说明纯虚函数的一般形式为:virtual 函数类型 函数名(参数列表)=0;
5.下列关于虚函数的描述中,正确的是( )。
B.虚函数只能是类中的一个成员函数,但不能是静态成员
虚函数只能是类中的一个成员函数,但不能是静态成员。关键字virtual指示C++使用虚函数产生运行时的多态性有三个前提:
(1)类之间的继承关系满足赋值兼容性规则;
(2)改写了同名虚函数;
(3)根据赋值兼容性规则使用指针或引用。分两种情况:
①按赋值兼容性规则使用基类指针或引用访问虚函数;
②把指针或引用作为函数参数,即这个函数不一定是类的成员函数,可以是普通函数,而且可以重载。
注意:满足前两条并不一定产生动态联编,必须同时满足第三条才能保证实现动态联编。
编译器对调用虚函数进行动态联编,这种多态性是程序运行到需要的语句处才动态确定的,所以称为运行时的多态性。不过,使用虚函数并不一定产生多态性,也不一定使用动态联编。
二、输入输出对象
1.cout是C++的( )。
B.对象
在C++中使用流进行输入输出,其中用于屏幕输出的对象是cout,用于键盘输入的对象是cin。
三、c++的头文件
1.进行文件操作时需要包含头文件( )。
A.iostream B.fstream C.stdio D.stdlib
进行文件操作时需要包含头文件fstream;iostream是C++标准输入输出库的头文件;stdio是C语言标准输入输出库的头文件,stdlib是C++标准程序库的头文件。
四、函数原型
函数原型类似函数定义时的函数头,又称函数声明。