对于类定义: 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()是虚函数
正确答案及解析
正确答案
C
解析
继承是面向对象程序设计最重要特征,指是一个新类从已有类那里获得其已有特征,并可以添加新特征。虚函数作用是允许在派生类中重新定义与基类同名函数,并且可以通过基类指针或引用来访问基类和派生类中同名函数。题中类A声明了两个函数,一个虚函数func1()和一个函数func2(),类B继承于类A,那就继承了类A特征,因此,类B中func1()是一个虚函数。在类B中又把func2()声明成虚函数,给func2()增加了新特征,所以,类B中两个函数都是虚函数,而在类A中只有func1()是虚函数。
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案