itgle.com
更多“在下面的类定义中,错误的语句是()。class Sample{public:Sample(int val)://①~Sample();//②privat ”相关问题
  • 第1题:

    在下面的类定义中,错误的语句是( )。 class Sample { public: Sample(int val); //① ~Sample(): //② private: int a=2.5; //③ Sample(); //④ };

    A.①②③④

    B.②

    C.③

    D.①②③


    正确答案:C
    解析:不能在类定义中给数据成员赋初值。

  • 第2题:

    Sample是一个类, 定义如下 class Sample { int val; public: Sample(int v):val(v){} }; 执行下面语句后,调用Sample类的构造函数的次数是_______。 Sample a[3],*p=new Sample;

    A.0

    B.2

    C.3

    D.4


    C 解析:本题考核类的定义。C++不能类的定义中给数据成员赋初值。

  • 第3题:

    19. 在下面的类定义中,错误的语句是()。 class sample{ public: sample(int val); //① ~sample(); //② private: int a=2.5; //③ public: sample(); //④ };

    A.①

    B.②

    C.③

    D.④


    类定义完成后系统为其分配相应的内存空间

  • 第4题:

    请在下列程序中的横线处填写正确的语句:

    class Sample{

    public:

    Sample()()

    ~Sample(){}

    void SetData(int data){//将Sample类成员变量data设置成形参的值

    ______

    }

    private:int data;

    };


    正确答案:Sample::data;
    Sample::data; 解析:此题考查的是this指针。由于Sample类的数据成员和函数的形参名称都是data,如果在函数中直接使用data引用的是形参变量而不是Sample类的数据成员。解决办法两种有:一是通过this指针,在类的成员函数中this代表函数所属对象的指针,即可填this->data:二是通过作用域运算符“::”明确指出访问的是Sample类的成员,所以在横线处填入Sample::data。

  • 第5题:

    有如下类定义,请将Sample类的拷贝构造函数补充完整。 class Sample { public: Sample(){} ~Sample(){if(p)delete p;} Sample(const Sample&s){ p=new int; *p=___________; } void SetData(int data) {p=new int(data);} void print(){cout<<*p<<endl;} private: int*p; };


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