itgle.com

对于类定义class A{public:virtual void funcl(){}void func2(){}};class B:public A{public:void funcl(){cout <<"class B func 1”<virtual void func2(){cout <<"class B func 2"<};下面正确的叙述是A.A::func2()和B::funcl()都是虚函数B.A::func2()和B::funcl()都不是虚函数C.B::funcl()是虚函数,而A::fun

题目

对于类定义

class A{

public:

virtual void funcl(){}

void func2(){}

};

class B:public A

{

public:

void funcl(){cout <<"class B func 1”<

virtual void func2(){cout <<"class B func 2"<

};

下面正确的叙述是

A.A::func2()和B::funcl()都是虚函数

B.A::func2()和B::funcl()都不是虚函数

C.B::funcl()是虚函数,而A::func2()不是虚函数

D.B::funcl()不是虚函数,而A::func2()是虚函数


相似考题
更多“对于类定义 classA{ public: virtualvoidfuncl(){} voidfunc2(){} }; classB:publicA { ”相关问题
  • 第1题:

    若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j } }; 则上述定义中

    A.k=i*j;

    B.int k;

    C.return i;

    D.void make()


    正确答案:A
    解析:本题考核派生类的定义和访问权限。变量i和j都是基类A的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第2题:

    对于类定义: classA{ public: virtualvoidfuncl(){} voidfunc2(){} }; classB:publicA{ public: voidfuncl(){cout<<"classBfunc1"<<endl;} virtualvoidfunc2(){cout<<"classBfunc2" <<endl;} }; 下面正确的叙述是( )。

    A.A::func2( )和B::func1( )都赵虚函数

    B.A::rune2( )和B::func1( )都不是虚函数

    C.B::func1( )是虚函数,而A::fune2( )不是虚函数

    D.B::func1( )不是虚函数,而A::func2( )是虚函数


    正确答案:C
    C。【解析】基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中funcl是虚函数;而类A中的func2没有被关键字virtual修饰;所以不是虚函数。

  • 第3题:

    23、假定类A已经定义,对于以A为基类的单一继承类B,以下定义中正确的是:()

    A.class B:public A{//...};

    B.class A:public B{//...};

    C.class B:public class A{//...};

    D.class A:class B public{//...};


    class B:public A{//...};

  • 第4题:

    有如下程序: #included<iostream> usingnamespacestd; classA{ public: virtualvoidfuncl(){cout<<"A1";) voidrune2(){cout<<"A2";}}; classB:publicA{ public: voidfuncl(){cout<<:"B1";} voidfunc2(){eout<<"B2";}}; intmain(){ A*p=newB; p->func1(); P->func2(); return0;} 执行该程序,屏幕上将显示输出( )。

    A.B1B2

    B.A1A2

    C.B1A2

    D.A1B2


    正确答案:C
    C。【解析】程序中B为A的派生类,由主函数入手,主函数中定义了类A的指针P指向类B。根据基类中的“virtualvoidfuncl”知道A中的funcl为虚函数,执行“P->fund;”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的fund函数,输出B1。而fun2不是虚函数,所以执行“p->func2;”输出为A2。

  • 第5题:

    对于类定义:

    classA{

    public:

    virtualvoidfuncl(){}

    voidfunc2(){}

    };

    classB:publicA{

    public:

    voidfuncl(){cout<<"classBfunc1"<<endl;}

    virtualvoidfunc2(){cout<<"classBfunc2"

    <<endl;}

    };

    下面正确的叙述是( )。

    A.A::func2( )和B::func1( )都赵虚函

    B.A::rune2( )和B::func1( )都不是虚函数

    C.B::func1( )是虚函数,而A::fune2( )不是虚函数

    D.B::func1( )不是虚函数,而A::func2( )是虚函数


    正确答案:C
    C。【解析】基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中funcl是虚函数;而类A中的func2没有被关键字virtual修饰;所以不是虚函数。