对于类定义: class A{ public: virtual void

免费题库2022-08-02  17

问题 对于类定义:  class A{  public:  virtual void func1(){}  Void func2 (){}  };  class B:public A{  public:  void func1(){cout<<"class B func 1"<<end1;}  virtual void func2(){cout<<"class B func 2"<<end1;}  };下面叙述正确的是( )。A.A::func2()和B::func1()都是虚函数B.A::func2()和B::func1()都不是虚函数C.B::func1()是虚函数,而A::func2()不是虚函数D.B::func1()不是虚函数,而A::func2()是虚函数

选项 A.A::func2()和B::func1()都是虚函数
B.A::func2()和B::func1()都不是虚函数
C.B::func1()是虚函数,而A::func2()不是虚函数
D.B::func1()不是虚函数,而A::func2()是虚函数

答案 C

解析 继承是面向对象程序设计最重要的特征,指的是一个新类从已有的类那里获得其已有的特征,并可以添加新的特征。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。题中类A声明了两个函数,一个虚函数func1()和一个函数func2(),类B继承于类A,那就继承了类A的特征,因此,类B中的func1()是一个虚函数。在类B中又把func2()声明成虚函数,给func2()增加了新的特征,所以,类B中的两个函数都是虚函数,而在类A中只有func1()是虚函数。
转载请注明原文地址:https://tihaiku.com/congyezige/2426091.html

最新回复(0)