更多“单选题假定MyClass为一个类,则该类的拷贝构造函数的声明语句为(  )。A MyClass (MyClass x);B MyClass (MyClassx);C MyClass(x);D MyClass(x);”相关问题
  • 第1题:

    假定MyClass 为一个类,则该类的拷贝构造函数的声明语句为 ( )。

    A.MyClass& (MyClass x);

    B.MyClass (MyClass x);

    C.MyClass(MyClass &x);

    D.MyClass (MyClass *x);


    正确答案:C
    解析:声明拷贝构造函数的格式为:类名>::拷贝构造函数>(const类名>&引用名>);其中const是修饰符可以省略。

  • 第2题:

    假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。

    A.void~MyClass();

    B.~MyClass(int n)

    C.MyClass();

    D.~MyClass();


    正确答案:D
    解析: C++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键宇。所以正确的形式应该是~MyClass()。

  • 第3题:

    假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为( )

    A.MyClass&(MyClass x);

    B.MyClass(MyClass x)

    C.MyClass(MyClass &x);

    D.MyClass(MyClass *x)


    正确答案:C
    解析:拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它的一般格式是:类名::类名(const类名&引用对象名)。

  • 第4题:

    假定MyClass为一个类,则执行myClass a,b(2),*p;语句时,自动调用该类构造函数( )次。

    A.2

    B.3

    C.4

    D.5


    正确答案:A

  • 第5题:

    已知类MyClass声明如下:

    class MyClass{

    int n;

    public:

    MyClass(int k):n(k){}

    int getValue()const{return n;}

    };

    在下列数组定义中正确的是

    A.MyClass xl[2];

    B.MyClass x2[2]={new MyClass(1),new MyClass(2)};

    C.MyClass * x3[2];

    D.MyClass * x412]={MyClass(1),MyClass(2)};


    正确答案:C
    解析:MyClass类中只定义了一个构造函数,即Myclass(int k):n(k){},这个构造函数只有一个形参,因此A)选项错误;类中并没有提供有“MyClass*”类型转化为“MyClass”类型的功能,因此B)选项错误;同理,类中也没有提供“MyClass”类型转化为“My-Class*”类型的功能,D)选项错误。C选项是定义了一个指向MyClass类型的指针数组,故本题选c)。

  • 第6题:

    假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为( )。


    正确答案:C

  • 第7题:

    有以下程序include using namespace std;class MyClass{public:MyClass(int n) { num

    有以下程序#include <iostream>using namespace std;class MyClass{public: MyClass(int n) { number=n; } //拷贝的构造函数 MyClass(MyClass& other) {number=other. number; } ~MyClass() { }private: int number;};MyClass fun(MyClass p){ MyClass temp(p); return temp;}int main() MyClass obj 1 (10), obj 2(0); MyClass obi 3 (obj 1); obj2=fun(obj3); return 0;}程序执行时,MyClass 类的拷贝构造函数被调用的次数是( )。

    A.5

    B.4

    C.3

    D.2


    正确答案:B

  • 第8题:

    假定MyClass 为一个类,则该类的拷贝构造函数的声明语句为( )。

    A.MyClass& (MyClass x);

    B.MyClass (MyClass.x);

    C.MyClass (MyClass &x);

    D.MyClass (MyClass *x);


    正确答案:C

  • 第9题:

    假定MyClass为—类,执行MyClass a[3],*p[2];语句时会自动调用该类构造函数( )次。

    A.2

    B.3

    C.4

    D.5


    正确答案:B

  • 第10题:

    假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。

    A.void~MyClass( );

    B.~MyC

    C.ass(intn);

    D.MyClass( );

    E.~MyClass( );


    正确答案:E
    E。【解析】C++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~MyClass。

  • 第11题:

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

    Class myClass{

    private:

    int data;

    public:

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

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

    }


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

  • 第12题:

    单选题
    假定MyClass为一个类,那么下列的函数说明中,(  )为该类的析构函数。
    A

    void ~MyClass();

    B

    ~MyClass(int n);

    C

    MyClass();

    D

    ~MyClass();


    正确答案: B
    解析:
    C++语言中析构函数格式为:符号“~”加类名,且没有返回值和参数。

  • 第13题:

    假定Myclass为一个类,则执行Myclass a[4],*p[2];语句时,自动调用该类的构造函数 ( )次。

    A.2

    B.3

    C.4

    D.6


    正确答案:C
    解析:构造函数系统可以自动调用。数组对象a[4]调用4次构造函数,*p[2]存放Myclass的指针数组,没有生成对象。

  • 第14题:

    假定MyClass为一个类,则执行MyClass a b(2),*p;语句时,自动调用该类构造函娄( )次。

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析:C++在创建一个对象时,会调用类的构造函数。语句 MyClass a b(2),*p;创建了两个对象a、b和指针p,在创建对象a和b后会调用构造函数,而创建指针p时,由于p本身不是对象,所以不调用类的构造函数。

  • 第15题:

    假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )

    A.MyClass(MyClass x);

    B.MyClass(MyClass&x);

    C.MyClass(&x);

    D.MvClass(x);


    正确答案:B
    解析:拷贝构造函数也是构造函数,所以函数名字为MyClass,但它只有一个参数,这个参数是本类的对象,即x;而且采用对象的引用的形式,也就是&x。所以本题答案是B)

  • 第16题:

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

    class myClass{

    private:

    int data;

    public:

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

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

    }


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

  • 第17题:

    下面是类MyClass的定义,对定义中各语句描述正确的是( )。 class MyClass { private: int x,y, z; public: void MyClass(int A) { x=a; } //① int f(int a, int B) //② { x=a; y=b; } int f(int a,

    A.语句①是类MyClass 的构造函数的定义

    B.语句②和③实现类成员函数的重载

    C.语句④实现对类成员变量x的更新操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:在C++中构造函数没有返回类型,所以语句①是错误的。语句②和语句③在进行f(x,y)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句④也是错误的。

  • 第18题:

    假定MyCIass为一个类,那么下列的函数说明中,( )为该类的析构函数。

    A.void~MyClass();

    B.~MyClass(int n);

    C.MyClass();

    D.~MyClass();


    正确答案:D
    解析: C抖语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是-MyClass()。

  • 第19题:

    下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。

    class Myclass {

    public:

    Myclass(int num);

    ~ Myclass( );

    public:

    int *p;

    };

    Myclass: :Myclass( int hum) {

    【 】

    Myclass:: ~ Myelass( ) {

    【 】;

    }。


    正确答案:P=new int(a)、delete P
    P=new int(a)、delete P 解析:new和delete的用法。

  • 第20题:

    假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。 A.void~MyClass( );

    假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。

    A.void~MyClass( );

    B.~MyC

    C.ass(intn);

    D.MyClass( );

    E.~MyClass( );


    正确答案:D
    D。【解析】C++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~MyClass。

  • 第21题:

    假定MyClass为一个类,则执行MyClass a[3],*p[2];语句时, 自动调用该类构造函数( )次。

    A.2

    B.3

    C.4

    D.5


    正确答案:B

  • 第22题:

    有以下程序includeusing namespace std;class MyClass{public:MyClass(int n){number

    有以下程序 #include<iostream> using namespace std; class MyClass { public: MyClass(int n){number =n; } //拷贝构造函数 MyClass(MyClass& other) {number=other.number;} ~MyClass() {} private: int number; }; MyClass fun(MyClass p) { MyClass temp(p); return temp; } int main() { MyClass Obj1(10),obj2(0); MyClass obj3(obj1); obj2=fun(obj3); return 0; } 程序执行时,MyClass类的拷贝构造函数被调用的次数是

    A.5

    B.4

    C.3

    D.2


    正确答案:B
    解析:本题考核C++的拷贝构造函数。调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型对象初始化;当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数。在函数值返回时形参的生命期结束时它的析构函数被调用;在函数返回一个对象时调用拷贝构造函数。符合以上条件的有:用对象obj1来初始化obj3;obj3作为实参被传入;函数fun返回一个对象时;系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用4次。

  • 第23题:

    单选题
    假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为(  )。
    A

    MyClass&(MyClass x);

    B

    MyClass(MyClass x);

    C

    MyClass(MyClass&x);

    D

    MyClass(MyClass*x);


    正确答案: C
    解析:
    拷贝构造函数是用一个已知的对象初始化一个正在创建的同类对象,拷贝初始化构造函数的声明语句一般格式是:类名::类名(const类名 &引用对象名)。