有如下类定义:class MyBase{int k;public;MyBase(int n=0):k(n){}int value()const{return k;}};class MyDerived; MyBase{int j;public;MyDerived(int i): j(i){}int getK()const {return k;}int gutj()const{return j;}};编译时发现有一处语法错误,对这个错误最佳准确的描述是____A.函数getK 试图访问基类的私有成员变量KB.

题目

有如下类定义:

class MyBase{

int k;

public;

MyBase(int n=0):k(n){}

int value()const{return k;}

};

class MyDerived; MyBase{

int j;

public;

MyDerived(int i): j(i){}

int getK()const {return k;}

int gutj()const{return j;}

};

编译时发现有一处语法错误,对这个错误最佳准确的描述是____

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

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

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

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


相似考题
更多“有如下类定义:classMyBase{intk;public;MyBase(intn=0):k(n){}intvalue()const{returnk;} ”相关问题
  • 第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: 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
    解析:因为在保护继承的情况下,基类中的公有成员void set(int n)和int get()const在派生类中是保护成员,再加上派生类自身的保护成员j,一共是3个保护成员。

  • 第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