问题
单项选择题
对于类定义
class A
public:virtual void func1()
void func2()
;
class B:public A
public:void func1()cout<<"class B func 1"<<endl;
virtual void func2()cout<<"class B func 2"<<endl;
;
下面正确的叙述是( )
A.A::func2()和B::func1()都是虚函数
B.A::func2()和B::func1()都不是虚函数
C.B::func1()是虚函数,而A::func2()不是虚函数
D.B::func1()不是虚函数,而A::func2()是虚函数
答案
参考答案:C
解析: 本题主要考查的知识点为虚函数。
[要点透析] 基类定义了虚函数,在派生类中只要有同样的函数(返回值相同,函数名相同,形参个数相同,类型相同),即使没有virtual修饰,该函数也是虚函数。基类func1是虚函数,与派生类func1相同,所以派生类fune1也是虚函数。func2在基类中是普通函数,在派生类中是虚函数。