首页 > 试题广场 >

对于纯虚函数描述正确的是(   

[不定项选择题]
对于纯虚函数描述正确的是(     )
  • 含有纯虚函数的类不能被声明对像,这些类被称为抽象类
  • 继承抽象类的派生类可以被声明对像,但要在派生类中完全实现基类中所有的纯虚函数
  • 继承抽象类的派生类可以被声明对像,不需要实现基类中全部纯虚函数,只需要实现在派生类中用到的纯虚函数
  • 虚函数和纯虚函数是一样的,没什么区别
虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用,因为纯虚函数在基类(base class)只有声明而没有定义。
发表于 2021-03-06 20:02:54 回复(1)
这题最大的难点是 派生类要全部实现抽象类的纯虚函数
发表于 2021-03-04 19:00:44 回复(0)
<p>纯虚函数不能有函数实现,虚函数可以</p>
发表于 2020-06-20 11:08:02 回复(0)
答案是 A 和 B。

A 正确描述了含有纯虚函数的类不能被声明为对象,这些类被称为抽象类。抽象类中的纯虚函数没有默认的实现,因此无法直接创建该类的对象。

B 也是正确描述的。继承抽象类的派生类可以被声明为对象,但是在派生类中必须实现基类中所有的纯虚函数,否则派生类仍然是一个抽象类,无法创建对象。

C 描述是不正确的。继承抽象类的派生类必须实现基类中的所有纯虚函数,而不只是在派生类中用到的纯虚函数。

D 描述是不正确的。虚函数和纯虚函数是有区别的。虚函数在基类中有默认实现,派生类可以选择性地重写;而纯虚函数没有默认实现,派生类必须重写它们。
发表于 2023-10-18 20:31:24 回复(0)
虚函数和纯虚函数是面向对象编程中的两个重要概念,它们在C++中用于实现多态性。 虚函数是在基类中声明的函数,可以被派生类重写。通过在基类中将函数声明为虚函数,可以实现动态绑定,使得在运行时根据对象的实际类型来调用相应的函数实现。这样,即使通过基类指针或引用访问派生类对象,也能够调用到正确的派生类函数。虚函数通过关键字`virtual`进行声明。 纯虚函数是在基类中声明但没有实现的虚函数。它在基类中被声明为纯虚函数后,基类就成为了抽象类。抽象类不能被实例化,只能被用作派生其他类的基类。派生类必须实现纯虚函数才能被实例化。纯虚函数通过在函数声明后加上`= 0`来声明,例如`virtual void func() = 0;`。 区别总结如下: 1. 虚函数可以有实现,而纯虚函数没有实现。 1. 虚函数在基类中可以被调用,但纯虚函数不能在基类中被调用。 1. 派生类可以选择性地重写虚函数,但必须实现纯虚函数。 1. 基类中有纯虚函数的类被称为抽象类,抽象类不能被实例化。 使用虚函数和纯虚函数可以实现多态性,使得程序可以根据对象的实际类型来调用正确的函数实现,提高了代码的灵活性和可扩展性。
发表于 2023-08-17 21:28:32 回复(0)
派生类要实现抽象类的所有纯虚函数
发表于 2021-03-23 08:43:08 回复(0)
纯虚函数是指被表明为不具体实现的虚拟成员函数。它用于这样的情况:
定义一个基类时,会遇到无法定义基类中虚函数的具体实现,其实现依赖于不同的派生类。
含有纯虚函数的基类是不可以定义对象的纯虚函数无实现部分,不能产生对象,所以含有虚函数的类是抽象类
发表于 2019-10-03 19:43:28 回复(0)