下面是类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.语句①、②、③和④都不正确

题目

下面是类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)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句④也是错误的。
更多“下面是类MyClass的定义,对定义中各语句描述正确的是()。class MyClass{private: intx,y, z;public ”相关问题
  • 第1题:

    类MyClass的定义如下: classMyClass { public: MyClass(){value=0;} SetVariable(inti){valtic=i;} private: intvalue; }; MyClass*P,my;p=&my; 则对下列语句序列正确的描述是( )。

    A.语句p=&my;是把对象my赋值给指针变量P

    B.语句MyClass*P,my;会调用两次类MyClass的构造函数

    C.对语句*P.SetVariable(5)的调用是正确的

    D.语句P->SetVariable(5)与语句my.SetVariable(5)等价


    正确答案:D
    D。【解析】语句p=&my;是把对象my的地址值赋给指针变量P。语句MyClass*P,my;,由于P只是一个指向对象的指针,因此定义指针P不调用构造函数,所以此语句只调用一次构造函数。对成员函数的引用可以通过两种形式:指针->成员函数(形参表)或者对象名.成员函数名(形参表)。

  • 第2题:

    对于下面定义的类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

  • 第3题:

    对于下面定义的类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);

  • 第4题:

    已知类MyClass的定义如下: ClassMyClass{ public: MyClass(intd){data=d;} ~MyClass(){} private: intdata; }; 下列对MyClass类对象数组的定义和初始化语句中,正确的是( )。

    A.MyClassarray[2];

    B.MyClassarray[2]={MyClass(5)};

    C.MyClassarray[2]={MyClass(5),Myclass(6)};

    D.MyClass*array=newMyClass[2];


    正确答案:C
    C。【解析】A只是声明,没有初始化;B的初始化错误,另一个数组对象没有指明地址;D同样做的不是初始化的事情。

  • 第5题:

    下面是类MyChss的定义,对定义中语句描述正确的是( )。class MyClass{public:void MyClass(int a){X=a;) //①int f(int a, int b) //②{X=a;Y=b;}int f(int a,int b,int c=0) //③{X=a;Y=b;Z=c;stahc void g (){X=10;) //④private:int X,Y,Z;};

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

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

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

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


    正确答案:D