( 31 ) 有如下类定义 :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 getJ( )const{ return j; }};编译时发现有一处语法错误 , 对这个错误最准确的描述是A )函数 getK

题目

( 31 ) 有如下类定义 :

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 getJ( )const{ return j; }

};

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

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

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

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

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


相似考题
更多“( 31 ) 有如下类定义 :class MyBase{int k;public:MyBase(int n=0):k(n){ }int value( )const{ r ”相关问题
  • 第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