对于类定义:
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;
;
下面叙述正确的是 (53) 。
A.A∷func2()和B∷func1()都是虚函数
B.A∷func2()和B∷func1()都不是虚函数
C.B∷func1()是虚函数,而A∷func2()不是虚函数
D.B∷func1()不是虚函数,而A∷func2()是虚函数
参考答案:C
解析:
[分析]:
本题考查的是C++中类的继承和虚函数。要解答此类题目,我们需要对类的继承和虚函数有很清楚的认识。
继承是面向对象程序设计最重要的特征,指的是一个新类从已有的类那里获得其已有的特征,并可以添加新的特征。
虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
题目中类A声明了两个函数,一个虚函数func1()和一个函数func2(),类B继承于类A,那就继承了类A的特征,因此,类B中的func1()是一个虚函数。在类B中又把 func2()声明成虚函数,给func2()增加了新的特征,所以,类B中的两个函数都是虚函数,而在类A中只有func1()是虚函数。