PTA选择判断——2019_4Polymorphism

1-1将构造函数说明为纯虚函数是没有意义的。

1-2抽象类是指一些没有说明对象的类。

//抽象类是含有纯虚函数的类

1-3动态绑定是在运行时选定调用的成员函数的。

1-4因为静态成员函数不能是虚函数,所以它们不能实现多态。

1-5在析构函数中调用虚函数时,采用动态束定。

调用析构函数时,已经有完整的定义了,不是函数模板,所以不是动态束定。

1-6在一个成员函数内调用一个虚函数时,对该虚函数的调用进行动态束定。

1-7虚函数不能是类的静态成员。

1-8对于从基类继承的虚函数,派生类也可以不进行重定义。

1-9纯虚函数与函数体为空的虚函数等价。

2-1关于纯虚函数和抽象类的描述中,( )是错误的。3

  1. 纯虚函数是一种特殊的虚函数,它没有具体的实现
  2. 抽象类是指具有纯虚函数的类
  3. 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
  4. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

2-2下列描述中,( )是抽象类的特性。4

  1. 可以说明虚函数
  2. 可以进行构造函数重载
  3. 可以定义友元函数
  4. 不能定义该类对象

2-3关于动态绑定的下列描述中,( )是错误的。4

  1. 动态绑定是以虚函数为基础的
  2. 动态绑定在运行时确定所调用的函数代码
  3. 动态绑定调用函数操作是通过指向对象的指针或对象引用来实现的
  4. 动态绑定是在编译时确定操作函数的

2-4关于虚函数的描述中,( )是正确的。3

  1. 虚函数是一个static 类型的成员函数
  2. 虚函数是一个非成员函数
  3. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数
  4. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型

2-5在公有继承的情况下,在派生类中能够访问的基类成员包括4

  1. 公有成员
  2. 保护成员
  3. 公有成员、保护成员和私有成员
  4. 公有成员和保护成员

2-6下面叙述不正确的是 1

  1. 基类的保护成员在派生类中仍然是保护的成员//没有指定派生方式
  2. 基类的保护成员在公有派生类中仍然是保护的
  3. 基类的保护成员在私有派生类中仍然是私有的
  4. 对基类成员的访问必须是无二义性

2-7以下说法中正确的是()2

  1. 在虚函数中不能使用this指针
  2. 在构造函数中调用虚函数不是动态联编
  3. 抽象类的成员函数都是纯虚函数
  4. 构造函数和析构函数都不能是虚函数

第四个选项:构造函数不可以,析构函数可以

2-9设有如下代码段:  2

class A {
public:
    void func1() {
        cout << "A1" << endl;
    }
    virtual void func2() {
        cout << "A2" << endl;
    }
};
class B : public A {
public:
    void func1() {
        cout << "B1" << endl;
    }
    void func2() {
        cout << "B2" << endl;
    }
};

int main() {
    A *a = new B;
    a->func1();
    a->func2();
}

则输出结果为:

  1. A1 A2
  2. A1 B2
  3. B1 A2
  4. B1 B2
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值