对于类定义: class A{ public: virtual void func1( ){} void func2( ){} }; class B:public A{ public: void

admin2010-01-17  30

问题 对于类定义:    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()是虚函数。
转载请注明原文地址:https://kaotiyun.com/show/tljZ777K
0

相关试题推荐
最新回复(0)