itgle.com

若有以下类W说明,则函数fConst的正确定义是()。 class W { int a; public: void fConst(int& ) const; };A.void W::fConst(int& k ) const { k = a; }B.void W::fConst(int& k ) const { k = a++; }C.void W::fConst(int& k ) const { cin>> a; }D.void W::fConst(int& k ) const { a = k; }

题目

若有以下类W说明,则函数fConst的正确定义是()。 class W { int a; public: void fConst(int& ) const; };

A.void W::fConst(int& k ) const { k = a; }

B.void W::fConst(int& k ) const { k = a++; }

C.void W::fConst(int& k ) const { cin>> a; }

D.void W::fConst(int& k ) const { a = k; }


相似考题
更多“若有以下类W说明,则函数fConst的正确定义是()。 class W { int a; public: void fConst(int& ) const; };”相关问题
  • 第1题:

    若类A和类B的定义如下:includeclass A{int i,j;public:int geti(){return i;}};class

    若类A和类B的定义如下: #include<malloc.h> 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(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。其余的访问权限都是许可的。

  • 第2题:

    若类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的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第3题:

    有如下类定义: class AA { int a; public: int getRef()const{ return &a; } //① int getValue()const{ return a; } //② void set(int n)const{ a=n; } //③ friend void show(AA aa)const{ cout<<a; } //④ }; 其中的四个函数定义中正确的是( )。

    A.①

    B.②

    C.③

    D.④


    正确答案:B
    解析:此题考查了常成员函数和友元函数的概念。选项A)中,getRef()函数的返回值和函数类型不符,故错误;选项C)中set()常成员函数改变了数据成员的值,这是不允许的;选项D)中show()函数被同时定义成友元函数和常成员函数是错误的。

  • 第4题:

    有如下类定义:

    class Bag {

    public:

    Bag(int p,char s='M'):price(p),size(s) { count++; }

    ~Bag() { count--; }

    int GetPrice() { return price; }

    int GetPrice() const { return price; }

    void SetPrice(int val) const { price=val; }

    private:

    int price;

    char size;

    static int count;

    };

    下列关于类成员的叙述中,正确的是( )。

    A. 成员函数GetPrice存在重定义

    B.构造函数的参数不能设置默认值

    C.析构函数中不能访问静态数据成员

    D.成员函数SetPrice不能定义为常函数


    参考答案:A

  • 第5题:

    下列类的构造函数不能通过编译,正确的构造函数应该是______。 include class Sample

    下列类的构造函数不能通过编译,正确的构造函数应该是______。

    include<iostream.h>

    class Sample

    {

    public:

    int n;

    const int con;

    Sample(int m) {con=m+1;n=m;}

    void disp( ) {cout<<"normal:n="<<n<<endl;}

    void disp( )const {cout<<"static:n="<<n<<endl;}

    };

    void main( )

    {

    const Sample a (12);

    Sample b (13);

    a.disp( );

    b.isp( );

    cout<<a.n<<","<<b.con<<endl;

    }


    正确答案:Sample(int m):con(m+1){n=m;)
    Sample(int m):con(m+1){n=m;) 解析:本题考察常数据成员的初始化方法。常数据成员的定义必须出现在类体中,而且初始化只能通过构造函数的成员初始化列表进行,而且不能被更新。

  • 第6题:

    若有以下说明和定义:fun(int*c){ }main(){ int(*a)()=fun,*b(),w[10],c; ……}在做必要的赋值之后,对fun函数的正确调用语句是______。

    A.a=a(w);

    B.(*a)(&c);

    C.b=*b(w);

    D.fun(b);


    正确答案:B

  • 第7题:

    有如下类声明: 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
    解析:在保护派生的单继承中,基类的公有数据成员和成员函数在派生类中成为保护成员。

  • 第8题:

    若类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的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第9题:

    有如下类定义: Class MyClass{ int value; public: MyClass(int n): value(n){} int getValue()const{return value;} }; 则类MyClass的构造函数的个数是

    A.1个

    B.2个

    C.3个

    D.4个


    正确答案:A

  • 第10题:

    若有以下程序: include usingnamespace std; class Sample { private: const int n;

    若有以下程序:

    include <iostream>

    using namespace std;

    class Sample

    {

    private:

    const int n;

    public:

    Sample(int i) :n(i) {)

    void print()

    {

    cout<<"n="<<n<<end1;

    }

    };

    int main()

    {

    sample a(10);

    a.print();

    return 0;

    }

    上述程序运行后的输出结果是【 】。


    正确答案:n=10
    n=10 解析:本题考核常成员数据的应用。类Sample中,定义了一个常数据成员n,所以构造函数只能通过初始化列表来初始化它。

  • 第11题:

    若有类T说明class T{inti;friend void fFriend(T&,int);};,则函数fFriend的错误定义是()

    • A、void fFriend(T &objT,int k){objT.i=k;}
    • B、void fFriend(T &objT,int k){k=objT.i;}
    • C、void T::fFriend(T &objT,int k){k+=objT.i;}
    • D、void fFriend(T &objT,int k){objT.i+=k;}

    正确答案:C

  • 第12题:

    若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()

    • A、void W::fConst(int&k)const{k=a;}
    • B、void W::fConst(int&k)const{k=a++;}
    • C、void W::fConst(int&k)const{cin>>a;}
    • D、void W::fConst(int&k)const{a=k;}

    正确答案:A

  • 第13题:

    有如下类声明: 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

  • 第14题:

    main函数中发生编译错误的语句是______。 include class A { public: int a; const i

    main函数中发生编译错误的语句是______。

    include<iostream.h>

    class A

    {

    public:

    int a;

    const int b;

    A( ):a(10),b(20){}

    void fun( )const

    {

    cout<<"a="<<a<<"\tb="<<b<<endl;

    }

    };

    void main( )

    {

    A obj1;

    const A*ptr=new A;

    ptr=&obj1;

    ptr->a=100;

    ptr->fun( );

    }


    正确答案:ptr->a=100;
    ptr->a=100; 解析:本题考察的是const的使用。const修饰的是指针变量的值,指针本身是可变的,但指针所指对象的值是常量,即ptr->a是不能被改变的。

  • 第15题:

    下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。

    请在①、②和⑧处各填入正确的内容,使程序能正常运行。

    include<iostream.h>

    【 】;

    class AA{

    int t;

    public:

    AA(int x){t=x;}

    void print(BB &b) ;

    };

    class BB{

    int s;

    public:

    BB(int y){s=y;}

    friend void 【 】 print(BB &);

    };

    void 【 】

    { cout<<"AA:"<<t<<"BB: "<<w.s<<end1;}<

    void main(){

    AA m(6);

    BB n(8);

    m.print(n);

    }

    输出结果为:AA:6;BB:8


    正确答案:class BB; AA:: AA::print(BB &w)
    class BB; AA:: AA::print(BB &w)

  • 第16题:

    有如下类声明: class MyBASE{ int k; public: void set(iht n){k=n;} int get()coast{return k;} }; class MyDERIVED:pnoted My BASE { 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
    解析:protected派生:pnvate->不可见;protected->private;public->protected。

  • 第17题:

    若类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的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第18题:

    若类A和类B的定义如下:includeclass A{int i*j;public:int geti(){return i;}};class

    若类A和类B的定义如下: #include<malloc.h> 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(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。其余的访问权限都是许可的。

  • 第19题:

    有如下类定义,请将Sample类的拷贝构造函数补充完整。

    class Sample{

    public:

    Sample(){)

    ~Sample(){if(p)delete p;)

    Sample(const Sample& s){

    ______

    }

    void SetData(int data) {p=new int(data);}

    private:

    int*p;

    };


    正确答案:p=new int; p=s.p;
    p=new int; p=s.p; 解析:此题考查的是复制构造函数。复制构造函数定义的一般格式如下:类名::类名(const类名&引用对象名){复制构造函数体)。而在类中的声明部分可省去“类名::”。

  • 第20题:

    有如下类定义和变量定义:

    class A{

    public:

    A(){data=O; }

    一A(){}

    int GetData()const{ retum data; }

    void SetData(int n) {data=n; }

    private:

    int data;

    };

    const A a;

    A b;

    下列函数调用中错误的是

    A.a.GetData();

    B.a.SetData(10);

    C.b.GetData();

    D.b.SetData(10);


    正确答案:B
    解析:常量是指在程序执行过程中值不改变的量。因为a是常量类型,而a的SetData成员函数会造成a的值被改变,所以B)项调用错误

  • 第21题:

    有如下类定义: class AA { im a: public: int getRefconst{return&a;}//① int getValueconst{return a;}//② void set(int n)const{a=n;}//③ friend void show(AA aA.const{cout<<a;}//④ }; 其中四个函数的定义中正确的是( )。

    A.①

    B.②

    C.③

    D.④


    正确答案:B
    本题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以本题答案为B。

  • 第22题:

    下面的类定义中,如果要为其添加一个析构函数,对于析构函数定义正确的是( )。 class TlestClass { private: int a: public: TestClass(int giva_a=0) {a=give_a;} }

    A.~void TestClass (){}

    B.~TestClass void(){}

    C.void~TestClass(){}

    D.~TestClass(){}


    正确答案:D

  • 第23题:

    若有类Z说明class Z{staticint a;public:static void fStatic(Z&);};int Z::a=0;Z objZ;,则函数fStatic中访问数据a错误的是()。

    • A、void Z::fStatic(){obj Z.a=1;}
    • B、void Z::fStatic(){a=1;}
    • C、void Z::fStatic(){this->a=0;}
    • D、void Z::fStatic(){Z::a=0;}

    正确答案:C

  • 第24题:

    单选题
    若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()
    A

    void W::fConst(int&k)const{k=a;}

    B

    void W::fConst(int&k)const{k=a++;}

    C

    void W::fConst(int&k)const{cin>>a;}

    D

    void W::fConst(int&k)const{a=k;}


    正确答案: C
    解析: 暂无解析