对于类定义:   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;}   };下面叙述正确的是(  )。

964 次浏览
  • A、::func2()和B::func1()都是虚函数
  • B、A::func2()和::func1()都不是虚函数
  • C、B::func1()是虚函数,而A::func2()不是虚函数
  • D、B::func1()不是虚函数,而A::func2()是虚函数
继承是面向对象程序设计最重要的特征,指的是一个新类从已有的类那里获得其已有的特征,并可以添加新的特征。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。题中类A声明了两个函数,一个虚函数func1()和一个函数func2(),类B继承于类A,那就继承了类A的特征,因此,类B中的func1()是一个虚函数。在类B中又把func2()声明成虚函数,给func2()增加了新的特征,所以,类B中的两个函数都是虚函数,而在类A中只有func1()是虚函数。
挑战成功
2年前
挑战失败
2年前
挑战失败
2年前
ks
挑战成功
3年前