( 12 )有如下两个类定义class AA{};class BB{AA v1,*v2;BB v3;Int *v4;};其中有一个成员变量的定义是错误的,这个变量是A ) v1B ) v2C ) v3D ) v4

题目

( 12 )有如下两个类定义

class AA{};

class BB{

AA v1,*v2;

BB v3;

Int *v4;

};

其中有一个成员变量的定义是错误的,这个变量是

A ) v1

B ) v2

C ) v3

D ) v4


相似考题
更多“( 12 )有如下两个类定义class AA{};class BB{AA v1,*v2;BB v3;Int *v4;};其中有一个成员变量的定义是错误的,这个变量是A ) v1B ) v2C ) v3D ) v4”相关问题
  • 第1题:

    ( 12 )有如下类定义和变量定义:

    class A{

    publie:

    A () {data=0;}

    ~A () {}

    int GetData ( ) coast { return data;}

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

    private:

    int data;

    };

    ccnst A a;

    A b;

    下列函数调用中错误的是

    A ) a .GetData ( ) ;

    B ) a .SetData ( 10 ) ;

    C ) b .GetData ( ) ;

    D ) b .SetData ( 10 ) ;


    正确答案:B

  • 第2题:

    有如下类定义: 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()函数被同时定义成友元函数和常成员函数是错误的。

  • 第3题:

    下列程序中声明了两个类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)

  • 第4题:

    有如下两个类定义:

    class AA{};

    class BB{

    AA v1,*v2;

    BB v3;

    int*v4;

    };

    其中有一个成员变量的定义是错误的,这个变量是

    A.v1

    B.v2

    C.v3

    D.v4


    正确答案:C
    解析:由于AA和BB都是类的定义,在类定义中无法声明一个自己的对象,所以在BB的类定义中,企图声明一个BB类的对象,是非法的。所以本题选择C)。

  • 第5题:

    请按下面注释的提示,将类B的构造函数定义补充完整。

    C1assA

    {

    int a;

    public:

    A(int aa=O){a=aa;}

    };

    class B:public A {

    int b;

    A c;

    public:

    //用aa初始化基类A,用aa+1初始化类对象成员c

    B(int aa}:【 】{b=aa+2}

    };


    正确答案:A(aA)c(aa+1)或c(aa+1)A(aA)
    A(aA),c(aa+1)或c(aa+1),A(aA) 解析:本题考核派生类构造函数的定义。题中要求用明初始化基类A,用aa+1初始化类对象成员c,用的初始化列表的形式,即A(aA),c(aa+1)或c(aa+1),A(aA) 。

  • 第6题:

    下列程序的运行结果是【 】。includeclass Sample{int a;public: Sample(int aa=0) {a

    下列程序的运行结果是【 】。

    include<iostream, h>

    class Sample

    {

    int a;

    public:

    Sample(int aa=0) {a=aa;}

    ~Sample() {cout<<"Sample="<<a<<;}

    class Derived: public Sample

    {

    int b;

    public:

    Derived(int aa=0, int bb=0): Sample(aa) {b=bb;}

    ~De rived() {cout <<"Derived="<<b<<'';}

    void main()

    {

    Derived dl (9)

    }


    正确答案:Derived=0 Sample=9
    Derived=0 Sample=9 解析:本题考察派生类和基类的构造函数,析构函数的执行顺序。

  • 第7题:

    请分析下面的程序并给出该程序的执行结果【】。 include class AA {int a;public: AA()

    请分析下面的程序并给出该程序的执行结果【 】。

    include <iostream>

    class AA {

    int a;

    public:

    AA() {cout<<" Initializing AA!\n" ; }

    AAM() {cout<<" Destroying AA!\n" ;

    };

    class BB {

    int b;

    AA p;

    public:

    BB() {cout<<"Initializing BB!\n" ;

    ~BB() {cout<<"Destroying BB!\n" ;

    };

    void main() {

    BB X;

    cout<<"Ending main!\n' ;

    }


    正确答案:Initializing AA! Initializing BB! Ending main! Destroying BB! Destroying AA!
    Initializing AA! Initializing BB! Ending main! Destroying BB! Destroying AA!

  • 第8题:

    有如下类定义: 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。

  • 第9题:

    有如下程序: inClude using namespace std; class AA { public: viltual void f() { c

    有如下程序:

    inClude<iostream>

    using namespace std;

    class AA

    {

    public:

    viltual void f()

    {

    cout<<"AA";

    }

    };

    class BB:public AA

    {

    public:

    BB()

    {

    cout<<"BB";

    }

    };

    class CC:public BB

    {

    public:

    virtual void f()

    {

    BB::f();

    cout<<"CC";

    }

    };

    int main()

    {

    AA aa,*p;BB bb;CC cc;

    p=&cc;

    p->f();

    return 0;

    }

    运行后的输出结果【 】。


    正确答案:BBBBAACC
    BBBBAACC 解析:本题考核虚函数。本题中,函数f()在基类AA中派生类CC中都声明为虚函数,所以采用动态联编。主函数首先定义类AA的对象aa和指针对象p,然后定义了类BB的对象bb,此时调用了类BB的构造函数输出BB。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc;p->f();”,输出AA和CC。

  • 第10题:

    有如下程序:includeusing namespaee std;class AA{public:AA( ){cout<<'1';}};class

    有如下程序: #include<iostreanl> using namespaee std; class AA{ public: AA( ){cout<<'1';} }; class BB:public AA{ int k; public: BB( ):k(0){eout<<'2';} BB(int n):k(n){cout<<'3';} }; int main( ){ BB,b(4),c; return 0; } 程序的输出结果是

    A.1312

    B.132

    C.32

    D.1412


    正确答案:A
    解析:创建派生类对象时,先调用基类构造函数,然后调用派生类构造函数,b(4)先调用基类构造函数,然后调用BB的带参数构造函数,打印1和3;c调用基类AA的构造函数,然后调用BB的构造函数,打印1和2。故答案为A。

  • 第11题:

    U-PTR由V1、V2、V3、V4四个字节组成,其中负调节位置在()

    • A、V1
    • B、V2
    • C、V3
    • D、V4

    正确答案:C

  • 第12题:

    填空题
    假定用户只为类 AB定义了一个构造函数 "AB(int aa, int bb=0) {a=aa; b=bb;}" ,则定义该类的对象时,其实参表中至少带有()个实参。

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

  • 第13题:

    ( 30 )有如下程序:

    #include<iostream>

    using namespace std;

    public:

    AA(){ cout<<'1'; }

    };

    class BB: public AA{

    int k;

    public:

    BB():k(0){ cout<<'2'; }

    BB(int n):k(n){ cout<<'3';}

    }

    int main(){

    BB b(4), c;

    return 0;

    }

    运行时的输出结果是

    A ) 1312

    B ) 132

    C ) 32

    D ) 1412


    正确答案:A

  • 第14题:

    阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。

    [说明]

    下面代码实现class C对class A和B的protected成员和public成员的调用。仔细阅读[代码5-1]、[代码5-2],在(n)处写出正确的运行结果。

    [代码5-1]

    include <iostream.h>

    class A {

    private:

    int a1;

    protected:

    int a2;

    public:

    A ( int v1,int v2,int v3 ): a1 ( v1 ) ,a2 ( v2 ) ,a3 ( v3 )

    {}

    int a3

    };

    class B : pubiic A{

    private:

    int b1;

    protected:

    int b2;

    public:

    B ( int v1,int v2,int v3,int v4,int v5,int v6 )

    : A(v1,v2,v3),b1 (v4),b2(v5),b3 (v6) {}

    int b3;

    };

    class C : public B{

    private:

    int c1;

    protected:

    int c2;

    public:

    int c3;

    C (int v1,int v2,int v3,int v4,int v5,int v6,int v7,int v8,int v9 )

    : B ( v1,v2,v3,v4,v5,v6 ) ,c1 ( v7 ),c2 ( v8 ) ,c3 v9

    void disp ( )

    {

    cout << "a2 in class C =" << a2 << endl;

    cout << "a3 in class C =" << a3 << eudl;

    cout << "b2 in class C =" << b2 << endl;

    tout << "b3 in class C =" << b3 << endl;

    }

    };

    [代码5-2]

    voidmain()

    {

    Cdemo(10,20,30,40,50,60,70,80,90);

    cout<<"对象demo.a3="<<demo.a3< cout<<"对象demo.b3="<<demo.b3< cout<<"对象demo.c3="<<demo.c3< demo.disp( );

    }

    [运行结果]

    对象demo.a3=(1)

    对象demo.b3=(2)

    对象demo.c3=(3)

    a2 in class C=(4)

    a3 in class C=(5)

    b2 in class C=(6)

    b2 in class C=(7)


    正确答案:(1) 30 (2) 60 (3) 90 (4) 20 (5) 30 (6) 50 (7) 60
    (1) 30 (2) 60 (3) 90 (4) 20 (5) 30 (6) 50 (7) 60 解析:本题代码定义了class C、class A和class B。其印class B继承了class A,class C又继承了class B,class C对 class A和B的protected成员和public成员的调用。明白了这个关系就不难解题了。

  • 第15题:

    请按下面注释的提示,将类B的构造函数定义补充完整。

    classA

    {

    int a;

    public:

    A(int aa=0) {a=aa;)

    };

    Class B:public A

    {

    int b;

    A c;

    public:

    //用aa初始化基数A,用aa+1初始化类对象成员c

    B(int aa): (b=aa+2)

    };


    正确答案:A(aa)c(aaq+1)或c(aa+1)A(aa)。
    A(aa),c(aaq+1)或c(aa+1),A(aa)。 解析: 题中要求用aa初始化基类A,用aa+1初始化类对象成员c,用的初始化列表的形式,即A(aa),c(aa+1)或c(aa+1),A(aa)。

  • 第16题:

    有如下程序:

    #include<iostream>

    using namespace std;

    class AA{

    public:

    AA(){tout<<‘l’;}

    };

    class BB:public AA{

    int k;

    public:

    BB():k(0){cout<<…2;}

    BB(int n):k(n){cout<<‘3’;}

    };

    int main(){

    BB b(4),C;

    return 0;

    }

    A.1312

    B.132

    C.32 D、1412


    正确答案:A
    解析:定义BB b(4)时先执行基类的构造函数,输出‘1’,在执行:BB类的第二个构造甬数,输出‘3’;定义c时先执行基类的构造函数输出‘1’,在执行BB类的第一个构造函数输出‘2’。共输出“1312”,故选A)。

  • 第17题:

    下面程序的输出结果是【】。 include using namespace std; class A {int a,b; public:A

    下面程序的输出结果是【 】。

    include <iostream>

    using namespace std;

    class A

    {

    int a, b;

    public:

    A()

    {

    a = b = 0;

    }

    A(int aa, int bb ) : a(aA) , b(bB)

    {

    cout <<"a="<<a<<","<<"b="<<b<<",";

    }

    ~A()

    {

    cout<<"D";

    };

    int main ( )

    {

    A x, y(2, 3);

    return 0;

    }


    正确答案:a=2b=3DD
    a=2,b=3DD 解析:本题主要考核构造函数与析构函数的应用。主函数中定义 A类对象x时无输出,定义对象y时调用构造函数输出a=2,b=3。在主函数结束前,对象x,y都调用各自的析构函数输出DD。所以最后答案为a=2,b=3DD。

  • 第18题:

    有如下两个类定义: ClaSSAA{}; classBB{ AAv1,*v2; BBv3; int*v4; }; 其中有一个成员变量的定义是错误的,这个变量是( )。

    A.v1

    B.v2

    C.v3

    D.v4


    正确答案:C
    C。【解析】本题主要考查类对象的定义,类的对象一般放在类结构体外或在主函数中定义,而不能放在类定义的结构体中,但自身类的指针可以,本题BBv3不能被定义于类体内。

  • 第19题:

    有如下程序:include using namespace std;class AA{public: virtual void f() {cout<

    有如下程序: #include <iostream> using namespace std; class AA { public: virtual void f() { cout<< "AA"; } }; class BB : public AA { public: BB() { cout << "BB"; } }; cla

    A.AA

    B.AABBCC

    C.BBAABBCC

    D.BBBBAACC


    正确答案:D
    解析:本题中,函数f()在基类AA中派生类CC中都声明为虚函数,所以采用动态联编。主函数首先定义类AA的对象aa和指针对象p,然后定义了类BB的对象bb,此时调用了类BB的构造函数输出BB。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc; p->f();”,输出AA和CC。

  • 第20题:

    有如下类定义: Class AA{ int a: PubliC: AA(int n=O):a(n){} }; Class BB:publiC AA{ publiC: BB(int n) }; 其中横线处的缺失部分是( )。

    A.:a(n){}

    B.:AA(n){}

    C.{a(n);}

    D.{a=n;}


    正确答案:B
    本题考查公用继承对基类成员的访问属性。公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有,本题中若要给派生类继承下来基类的私有成员赋值,那么只能调用基类的成员函数来对它赋值,成员变量默认的访问权限为私有,即a为私有变量。所以本题答案为B。

  • 第21题:

    有如下两个类的定义: class AA{}; class BB{ AA vl,*v2; BB v3: int*v4: }; 其中有一个成员变量的定义是错误的,这个变量是

    A.v1

    B.v2

    C.v3

    D.v4


    正确答案:C
    解析:在本类的数据成员定义中,不能定义本类的对象,否则就出现了递归定义,这是不允许的。

  • 第22题:

    已知一个类A的定义如下,则执行“Ax(3); ”语句后,x.a和x.b的值分别为 ______。 class A { int a, b; public: A(int aa=1,int bb=0){a=aa;b=bb} ; }

    A.1和0

    B.3和1

    C.1和3

    D.3和0


    正确答案:D

  • 第23题:

    数字用户接口又叫V接口,具体分为V1、V2、V3、V4、V5接口。其中()接口可以接多个2B+D的终端,支持ISDN接入。

    • A、V1
    • B、V2
    • C、V3
    • D、V4

    正确答案:D