更多“单选题假定MyClass为一个类,那么下列的函数说明中,(  )为该类的析构函数。A void ~MyClass();B ~MyClass(int n);C MyClass();D ~MyClass();”相关问题
  • 第1题:

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

    A.2

    B.3

    C.4

    D.6


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

  • 第2题:

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

    A.MyClass&(MyClass x);

    B.MyClass(MyClass x)

    C.MyClass(MyClass &x);

    D.MyClass(MyClass *x)


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

  • 第3题:

    假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数首部形式为______。


    正确答案:~MyClass()
    ~MyClass() 解析:本题考核析构函数的定义。c++中析构函数名是在类名前加上求反符号~;析构函数不能指定返回类型,它隐含有返回值,由系统内部使用;析构函数没有参数,因此析构函数不能重载,一个类中只能定义一个析构函数。

  • 第4题:

    下列程序的执行结果为______。 include class Myclass { public: void GetSum(int a)

    下列程序的执行结果为______。

    include<iostream.h>

    class Myclass

    {

    public:

    void GetSum(int a);

    static int Sum;

    prtvate:

    int A;

    };

    int Myclass::Sum=10;//必须在类外部对静态数据成员初始化

    void Myclass::GetSum(int a)

    {

    A=a;

    Sum+=A:

    }

    vold PrintSum(Myclass& A)

    {

    cout<<"Sum="<<A. Sum<<endl;

    }

    void main( )

    {

    Myclass M,N;

    M.GetSum(3);

    N.GetSum(7);

    PrintSum(M);

    }


    正确答案:sum=20
    sum=20 解析:本题考察静态数据成员在同类的不同对象间的数据传递功能。Sum为所有对象的公共数据,M对象和N对象分别对sum进行累加,故结果为20。

  • 第5题:

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

    A.void~MyClass();

    B.~MyClass(int n);

    C.MyClass();

    D.~MyClass();


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

  • 第6题:

    有以下程序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

  • 第7题:

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

    A.MyClass& (MyClass x);

    B.MyClass (MyClass.x);

    C.MyClass (MyClass &x);

    D.MyClass (MyClass *x);


    正确答案:C

  • 第8题:

    对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是 ( )。 class MyClass { public: MyClass(int X){n=x;} void SetNum(int nl){n=nl} private: int n; } int f() { MyClass*ptr=new MyClass(45); ______ }

    A.MyClass(50)

    B.SetNum(50)

    C.ptr->SetNum(50)

    D.ptr->n=50


    正确答案:C

  • 第9题:

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

    A.2

    B.3

    C.4

    D.5


    正确答案:B

  • 第10题:

    有以下程序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次。

  • 第11题:

    对于下面定义的类MyClass,请在函数f( )中添加对象成员把n的值修改为50。

    class MyClass

    {

    public:

    MyClass(int x){n=x;}

    void SetNum(int n1){n=n1;}

    private:

    int n;

    };

    void f()

    {

    My Class*ptr=new MyClass(45);

    【12】

    }


    正确答案:
    ptr->SetNum(50);

  • 第12题:

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

    MyClass (MyClass x);

    B

    MyClass (MyClass&x);

    C

    MyClass(&x);

    D

    MyClass(x);


    正确答案: B
    解析:
    拷贝构造函数也是构造函数,采用对象的引用的形式,即&。因此拷贝构造函数的声明语句为“MyClass (MyClass&x);”。

  • 第13题:

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

    A.void~MyClass();

    B.~MyClass(int n)

    C.MyClass();

    D.~MyClass();


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

  • 第14题:

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

    A.MyClass(MyClass x);

    B.MyClass(MyClass&x);

    C.MyClass(&x);

    D.MvClass(x);


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

  • 第15题:

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

    A.2

    B.3

    C.4

    D.5


    正确答案:A

  • 第16题:

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

    有以下程序: #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)

    A.5

    B.4

    C.3

    D.2


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

  • 第17题:

    对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是( )。 class MyClass { public: MyClass(int X){n:x;} void SetNum(int n1){n=n1;} private: int n; } int f() { MyClass *ptr=-new MyClass(45); ______ }

    A.MyClass(50)

    B.SetNum(50)

    C.ptr->SetNum(50)

    D.ptr->n=50


    正确答案:C

  • 第18题:

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

    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的用法。

  • 第19题:

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

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

    A.void~MyClass( );

    B.~MyC

    C.ass(intn);

    D.MyClass( );

    E.~MyClass( );


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

  • 第20题:

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

    A.2

    B.3

    C.4

    D.5


    正确答案:B

  • 第21题:

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

    A.void~MyClass( );

    B.~MyC

    C.ass(intn);

    D.MyClass( );

    E.~MyClass( );


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

  • 第22题:

    以下程序的执行结果为()。includeclass myClass{Dublic:myClass(intdata) ;myClass(

    以下程序的执行结果为( )。 #include<iostream.h> class myClass { Dublic: myClass(int data) ; myClass(){value=0; }; myClass(myClass &obj); void print(){ cout<<value<<end1; } ~myClass(){} private: int value; }; myClass::myClass(int data) {value=data; } myClass::myClass(myClass &Obj) { value=obj.value; } void main() { myClass a(100); myClass b(a) ; b.print(); }

    A.0

    B.100

    C.10

    D.程序编译时出错


    正确答案:B
    解析:题中类myClass定义了一个拷贝初始化构造函数myClass(myClass&obj)。在主函数中,系统首先自动调用相应的构造函数建立对象,然后调用拷贝构造函数对对象b进行初始化。所以程序最后的输出为100。

  • 第23题:

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

    MyClass&(MyClass x);

    B

    MyClass(MyClass x);

    C

    MyClass(MyClass&x);

    D

    MyClass(MyClass*x);


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