niusouti.com
参考答案和解析
正确答案:A

本题考察const修饰符的作用。注意:const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr是可以重新指向新的对象,而ptr->a则无法被更新。

更多“已知类A有公用数据成员a,并重载了一运算符,且有A obj2;const A*ptr=new A;则下列语句错误 ”相关问题
  • 第1题:

    已知类A有公用数据成员a,并重载了“=”运算符,且有A obj2;const A*ptr new A;则下列语句错误的是( )。

    A.ptr->a=100;

    B.ptr=&obj2;

    C.ptr++;

    D.obj2=*ptr;


    正确答案:A
    解析: 本题考查const修饰符的作用。注意:const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr是可以重新指向新的对象,而ptr->a则无法被更新。

  • 第2题:

    已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是( )。

    A.ptr->a=100;

    B.ptr=&obj2;

    C.ptr++;

    D.obj2=*ptr;


    正确答案:A
    A。【解析】本题考查const修饰符的作用。注意,const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr可以重新指向新的对象,而ptr->a则无法被更新。

  • 第3题:

    已知在类A的类体中包含如下函数原型: A operator-(A)const;,下列关于这个函数的叙述中,错误的是()。

    A.这是运算符-的重载运算符函数

    B.这个函数所重载的运算符是一个单目运算符

    C.这是一个成员函数

    D.这个函数不改变类的任何数据成员的值


    B 解析:本题考核运算符的重载。题中语句为运算符-的重载运算符函数,它所重载的运算符—是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。

  • 第4题:

    已知类A有公用数据成员a,且有A obj2;A * const ptr=new A;则下列语句正确的是

    A.ptr->a=100;

    B.ptr=&obj2;

    C.ptr++;

    D.ptr=obj2;


    正确答案:A
    解析:本题主要考察const的使用,const根据其位置的不同修饰不同的成份,从而表现出灵活的特性,考生容易混淆。此处const修饰的是指针,雕指针本身不能改变,故选项B、C和D都是错误的。但是指针指向的地址里面的值确实可以改变的,因此选项A是正确答案。

  • 第5题:

    请教:2016年计算机二级C++基础练习二单选题15如何解答?

    已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是()。

    A.ptr->a=100;

    B.ptr=&obj2;

    C.ptr++;

    D.obj2=*ptr;


      A

      【解析】本题考查const修饰符的作用。注意,const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr可以重新指向新的对象,而ptr->a则无法被更新。