有如下类定义: class MyBase { int k; public: MyBase(int n=0):k(n) { } int value( )const{ return k;} }; class MyDerived: MyBase { intj; public: MyDerived(int i): j(i) {} int getK( )const{ return k; } int getJ( )const{ return j; } }; 编译时发现有一处语法错误,对这个错误最准确的描述是A.函数g

题目

有如下类定义: class MyBase { int k; public: MyBase(int n=0):k(n) { } int value( )const{ return k;} }; class MyDerived: MyBase { intj; public: MyDerived(int i): j(i) {} int getK( )const{ return k; } int getJ( )const{ return j; } }; 编译时发现有一处语法错误,对这个错误最准确的描述是

A.函数getK试图访问基类的私有成员变量k

B.在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private

C.类MyDerived缺少一个无参的构造函数

D.类MyDerived的构造函数没有对基类数据成员k进行初始化


相似考题
更多“有如下类定义: class MyBase { int k; public: MyBase(int n=0):k(n) { } ”相关问题
  • 第1题:

    有如下类声明: class MyBASE{ int k; public: void set(int n){k=n;} int get( )const{return k;} }; class MyDERIVED:protected MyBASE{ protected: intj; public: void set(int m,int n){MyBASE::set(m);j=n;} int get( )const{return MyBASE::get( )+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:在保护派生的单继承中,基类的公有数据成员和成员函数在派生类中成为保护成员。

  • 第2题:

    有如下类声明: class MyBASE { int k; public: void set(int n){k=n;} int get()const{return k;} }; class MyDERIVED:protected MyBASE { protected: int j; public: void set(int m, int n) {MyBASE::set(m);j=n;} int get()const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:本题考核派生与继承中关于访问权限的继承。类MyDERIVED保护继承类MyBASE,那么类MySASE中的共有成员在派生类MyDERIVED中表现为保护权限,所以加上派生MyDERIVED后来定义的一个保护数据成员j,类MyDERIVED中保护的数据成员和成员函数的个数是3。

  • 第3题:

    有如下类定义: class MyBase{ int k; public: MyBase(int n=O):k(n)}} int valueeonst{return k;} }; class MyDerived:MyBase{ intj; public: MyDerived(int i):j(i)}} int getKconst{return k;} int getJconst{return j;} }; 编译时发现有一处语法错误,对这个错误最准确的描述是( )。

    A.函数9etK试图访问基类的私有成员变量k

    B.在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private

    C.类MyDerived缺少一个无参的构造函数

    D.类MyDerived的构造函数没有对基类数据成员k进行初始化


    正确答案:A
    默认继承方式为私有继承,私有继承将基类的公用成员和保护成员都变为r私有成员,基类的私有成员依然属于基类私有,派生类不能访问基类的私有成员。所以A选项正确。

  • 第4题:

    有如下类声明: class MyBASE { int k; public: void set(int n) {k=n;} int get()const{return k;} }; class MyDERIVED:protected MyBASE { protected. int j; public: void set(int m,int n){MyBASE::set(m);j=n;} int get()const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是( )。

    A.4

    B.3

    C.2

    D.1


    正确答案:B

  • 第5题:

    有如下类定义: class MyBase{ int k; public: MyBase(int n--0):k(n){} int value()const{return k;} }; class MyDefived: MyBase{ int j; public: MyDefived(int i):j(i) {} int getK()const{return k;} int getJ()const{return j;} }; 编译时发现有一处语法错误,对这个错误最准确的描述是( )。

    A.函数getK试图访问基类的私有成员变量k

    B.在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或pfivate

    C.类MyDerived缺少一个无参的构造函数

    D.类MyDerived的构造函数没有对基类数据成员k进行初始化


    正确答案:A