niusouti.com

类MyClas定义如下: Class MyClas{ public: MyClas(){value=0;} setVariable(int i){value=I;} private: int value; }则以下对语句序列 MyClas *p,my;p=&my; 的描述正确的是( )。A.语句 p->setVariable(5) 与语句 my.setVariable(5) 等价B.对语句 *p.setVariable(5)的调用是正确的C.语句 MyClas *p,my; 会调用两次类MyClas的构造

题目

类MyClas定义如下: Class MyClas{ public: MyClas(){value=0;} setVariable(int i){value=I;} private: int value; }则以下对语句序列 MyClas *p,my;p=&my; 的描述正确的是( )。

A.语句 p->setVariable(5) 与语句 my.setVariable(5) 等价

B.对语句 *p.setVariable(5)的调用是正确的

C.语句 MyClas *p,my; 会调用两次类MyClas的构造函数

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


相似考题
更多“类MyClas定义如下:Class MyClas{ public:MyClas(){value=0;}setVariable(int i){value=I;} priva ”相关问题
  • 第1题:

    类MyClass的定义如下,若要对value赋值,则下面语句正确的是( )。 classMyClass { public: MyClass( ){} MyClass(inti){value=newint(i);} int*value; };

    A.MyClassmy;my.value=10;

    B.MyClassmy;*my.value=10;

    C.MyClassmy;my.*value=10;

    D.MyClassmy(10);


    正确答案:D
    D。【解析】因题目中定义的指针value是指淘变量i的,所以直接利用语句MyClass(inti){value=newint(i);}对value进行赋值即可。

  • 第2题:

    已知类MyClas有一个只需要一个double型参数的构造函数,其将运算符“+”重载为友元函数。要使语句序列 MyClas x(1.2),y(2.3),z(0);z=x+y; 能够正常运行,运算符函数 operator+应在类中声明为( )。

    A.friend MyClas operator+(int,MyClas&);

    B.friend MyClas operator+(MyClas,MyClas);

    C.friend MyClas operator+(MyClas,MyClas&);

    D.friend MyClas operator+(MyClas&,MyClas);


    正确答案:B
    解析:由重载的定义格式可知运算符函数应在类中声明为:friendMyClasoperator+(MyClas,MyClas);

  • 第3题:

    类MyClas的定义如下: class MyClas{ public: MyClas(){} MyClas(int a){ value=new.int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中正确的是( )

    A.MyClas x;x.value=10;

    B.MyClas x; *x.value=10;

    C.MyClas x;x. *value=10;

    D.MyClas x(10);


    正确答案:D
    解析:选项A中,直接对地址赋值,因此选项A是错误的;c++中不能对未初始化的指针变量赋值,因此选项B是错误的;选项C有语法错误;选项D通过调用类的构造函数给value赋初值10。

  • 第4题:

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

    class Myclas{

    int *x;

    public:

    MyClas(int n);

    ~MyClas();

    };

    MyClas::MyClas(intn){

    【 】;

    }

    MyClas::~MyClas(){

    【 】;

    }


    正确答案:x=new int(n)delete x
    x=new int(n),delete x 解析:在类的构造函数中,是申请内存空间,并使指针x指向构造函数的形参n,所以构造函数的函数体应为:x=newint(n);。在析构函数中,是释放类的私有成员,即指针变量x,所以析构函数的函数体应该为deletex;。

  • 第5题:

    类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i){value=new int(i);} int*value; }; 若要对value赋值,则下面语句正确的是( )。

    A.MyClass my;my.value=10;

    B.MyClass my;*my.value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D