参考答案和解析
正确答案:D
解析:此题考查的是构造函数的概念。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。选项A)和选项B)不符合要求。选项C)中函数AA会更新对象的数据成员。
更多“在下列函数原型中,可以作为类AA构造函数的是()。A.void AA(int);B.int AA();C.AA(int)const;D.AA( ”相关问题
  • 第1题:

    以下函数声明中,存在语法错误的是______ 。

    A.int AA(int a,int);

    B.int *BB (int,int);

    C.void CC (int,int=5);

    D.void*DD (x,y);


    正确答案:D
    解析:D选项参数没有进行声明。

  • 第2题:

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

  • 第3题:

    请按下面注释的提示,将类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)。

  • 第4题:

    请按下面注释的提示,将类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) 。

  • 第5题:

    下列类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

    class myClass{

    private:

    int data;

    public:

    myClass(int value);//构造函数

    myClass(const______another Object);//拷贝构造函数

    }


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

  • 第6题:

    有如下类定义: class AA { int a; public: int getRef()const{return &

    有如下类定义: 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(AAaa)const{cout<<a;} //④ }; 其中的四个函数定义中正确的是

    A.①

    B.②

    C.③

    D.④


    正确答案:B
    解析:本题考查了常成员函数和友员函数的一些概念。getRef()函数返回的是a的地址值&a,而函数类型却定义为int,C++中不允许隐式的将一个地址值类型转换为int类型,故选项A不正确。set()函数被定义为常成员函数,但在函数中给a赋值,改变了数据成员的值这是不允许的,故选项C错误。show()函数被定义为AA类的友员函数,它不属于AA类而是一个全局函数。所以同时被定义为常成员函数是错误的。所以选项D不正确。故应该选择B。

  • 第7题:

    如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

    Class myClass{

    private:

    int data;

    public:

    myClass(int value);//构造函数

    myClass(const【 】anotherObject);//拷贝构造函数

    }


    正确答案:myClass&
    myClass& 解析:本题考查的知识点是:拷贝构造函数。拷贝构造函数定义的一般格式如下:
    类名>::类名)(const类名>&引用对象名>)
    {
    //拷贝构造函数体
    }
    而在类中的声明部分则可省去类名>::。故本题应该填myClass&。

  • 第8题:

    下面()的函数声明格式不正确。

    • A、AA(int a, int b);
    • B、AA(int a=0, int b);
    • C、AA(int a=0, int b=0);
    • D、AA(int a, int b=0);

    正确答案:B

  • 第9题:

    假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为()

    • A、 AB() {a=0;}
    • B、 AB(int aa=0):a(aa) {}
    • C、 AB(int aa):a(aa) {}
    • D、 AB() {}

    正确答案:D

  • 第10题:

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

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

  • 第11题:

    单选题
    在下列函数原型中,可以作为类AA构造函数的是(  )。
    A

    void AA(int);

    B

    int AA():

    C

    AA(int)const;

    D

    AA(int);


    正确答案: D
    解析:
    构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。A项和B项,函数均有返回值,不能作为构造函数;C项,构造函数会修改对象的数据成员,不能声明为常成员函数;D项可以作为类AA的构造函数。

  • 第12题:

    填空题
    假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,在该函数体中()向*this或其成员赋值。

    正确答案: 不允许
    解析: 暂无解析

  • 第13题:

    下面的______ 函数头格式不正确。

    A.AA(int a,int b)

    B.AA(int a,int b=0)

    C.AA(int a=0,int b=0)

    D.AA(0,int b)


    正确答案:D
    解析:D选项第一个参数没有声明参数类型。

  • 第14题:

    在下列函数原型中,可以作为类AA构造函数的是______ 。

    A.void AA(int);

    B.int AA();

    C.AA (int)const;

    D.AA(int)


    正确答案:D
    解析:如果作为类AA构造函数不能有返回值,排除答案A、B,而且不能是常函数,所以选择D。

  • 第15题:

    在下列函数原型中,可以作为类AA构造函数的是

    A.void AA(int);

    B.int AA( );

    C.AA(int)eonst;

    D.AA(int);


    正确答案:D
    解析:类的构造函数不能有返回值,也不能定义为返回空函数,或者用const修饰定义为常函数。

  • 第16题:

    阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    在下面函数横线处填上适当的字句,使其输出结果为:

    构造函数.

    构造函数.

    1,2

    5,6

    析构函数

    析构函数.

    【C++代码】

    include "iostream.h"

    class AA

    { public;

    AA(int i,int j)

    {A=i; B=j;

    cout<<"构造函数.\n";

    }

    ~AA(){(1);}

    void print();

    private:

    int A, B;

    };

    void AA∷print()

    {cout<<A<<","<<B<<endl;}

    void main()

    {

    AA *a1, *a2;

    (2)=new AA(1, 2);

    a2=new AA(5, 6);

    (3);

    a2->print();

    (4) a1;

    (5) a2;

    }


    正确答案:(1)cout"析构函数.\n" (2)a1 (3)a1—>print() (4)delete (5)delete
    (1)cout"析构函数.\n" (2)a1 (3)a1—>print() (4)delete (5)delete 解析:本题考查用C++语言对输出的实现。
    题目中没有什么条件,只给出了输出结构,要求程序能实现这个输出。下面来具体分析代码。
    第(1)空很明显是类AA的析构函数的函数体,类的析构函数一般在撤销一个对象时调用,根据题目的要求,要输出析构函数这样的结果,而在程序中没有与此相关的操作,那么此空应该是用来实现这个功能的,借鉴构造函数中的内容,我们很容易就得出此空答案为cout"析构函数.\n"。
    第(2)空在主函数中,很明显此空所在的语句是创建一个AA类的对象,并让一个AA型的指针变量指向这个对象。在函数开始的时候声明了两个AA型的指针变量a1和a2,而a2在下面已经有了值,那么这里只有用变量a1,因此此空答案为a1。
    第(3)空是在创建了两个对象后执行的语句,根据程序不难推断出,这里应该要实现对象a1的数据输出,那么就要调用函数print(),因此此空答案为a1->print()。
    第(4)空所在的语句是在实现了构造函数与数据输出后执行的语句,从题目要求来分析,这里应该要调用对象的析构函数来输出“析构函数”这样一个结果,上面我们已经分析到了对象的析构函数一般在撤销对象时调用。从对象的执行过程来分析,在对象的所有处理完成后也应该撤销对象来释放所占的资源,那么此空的任务应该是用来撤销a1对象,在C++中一般用关键字delete,因此此空答案为delete。
    第(5)空和第(4)空的情况一样,因此此空答案为delete。

  • 第17题:

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

  • 第18题:

    在下列函数原型中,可以作为类AA构造函数的是

    A.voidAA(int);

    B.intAA();

    C.AA(int)const;

    D.AA(int);


    正确答案:D
    解析:本题考核类的构造函数。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。所以A、B选项都不符合要求,C选项中函数AA定义为常函数,它不能更新对象的数据成员,也不符合要求。

  • 第19题:

    假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()

    • A、 int AA::a()
    • B、 int AA:a()
    • C、 AA::a()
    • D、 AA::int a()

    正确答案:A

  • 第20题:

    假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,在该函数体中()向*this或其成员赋值。


    正确答案:不允许

  • 第21题:

    假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为()

    • A、 AB() {}
    • B、 AB(): a(0){}
    • C、 AB(int aa=0) {a=aa;}
    • D、 AB(int aa) {}

    正确答案:C

  • 第22题:

    单选题
    假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为()
    A

     AB() {a=0;}

    B

     AB(int aa=0):a(aa) {}

    C

     AB(int aa):a(aa) {}

    D

     AB() {}


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

  • 第23题:

    单选题
    假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()
    A

     int AA::a()

    B

     int AA:a()

    C

     AA::a()

    D

     AA::int a()


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

  • 第24题:

    单选题
    假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为()
    A

     AB() {}

    B

     AB(): a(0){}

    C

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

    D

     AB(int aa) {}


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