1. 概念填空题 1.1 C++支持两种多态性,分别是 编译时 和 运行时 。 1.2 在编译时就确定的函数调用称为 静态联编 ,它通过使用 函数重载,模板等 实现。 1.3 在运行时才确定的函数调用称为 动态联编 ,它通过 虚函数 来实现。 1.4 虚函数的声明方法是在函数原型前加上关键字 v irtu al 。在基类中含有虚函数,在派生类中的函数没有显式写出virtual 关键字,系统依据以下规则判断派生类的这个函数是否是虚函数:该函数是否和基类的虚函数 同名 ;是否与基类的虚函数 参数个数相同、类型 ;是否与基类的虚函数 相同返回类型 。如果满足上述 3 个条件,派生类的函数就是 虚函数。并且该函数 覆盖 基类的虚函数。 1.5 当通过 引用 或 指针 使用虚函数时,C++会在与对象关联的派生类中正确的选择重定义的函数。实现了 运行时 时多态。而通过 对象 使用虚函数时,不能实现运行时时多态。 1.6 纯虚函数是一种特别的虚函数,它没有函数的 函数体 部分,也没有为函数的功能提供实现的代码,它的实现版本必须由 派生类 给出,因此纯虚函数不能是 友元函数 。拥有纯虚函数的类就是 抽象类 类,这种类不能 实例化 。如果纯虚函数没有被重载,则派生类将继承此纯虚函数,即该派生类也是 抽象 。 1.7 类的构造函数 不可以 (可以/不可以)是虚函数,类的析构函数可以 (可以/不可以)是虚函数。当类中存 在动态内 存 分配 时经 常 将类的 析构函数 函数声明成 虚函数 。 2. 简 答 题 2.1 在C++中,能否声明虚构造函数? 为什 么 ? 能否声明虚析构函数? 为什 么 ? 2.2 什 么 是抽象类? 抽象类有何 作 用? 可以声明抽象类的对象吗 ? 为什 么 ? 2.3 多态性和虚函数有何 作 用? 2.4 是否使用了虚函数就能实现运行时的多态性?怎 样 才能实现运行时的多态性? 2.5 为什 么 析构函数总 是要 求 说 明为虚函数? 3. 选择题 3.1 在C++中,要 实现动态联编,必须使用(D)调用虚函数。 A.类名 B.派生类指针 C.对象名 D.基类指针 3.2 下列 函数 中,不能说 明为虚函数的是(C)。 A.私 有成 员 函数 B.公 有成 员 函数 C.构造函数 D.析构函数 3.3 在派生类中,重载一个虚函数时,要 求 函数名、参数的个数、参数的类型、参数的顺 序 和函数的返回值 (A)。 A.相同 B.不同 C.相容 D.部分相同 3.4 当一个类的某 个函数...