已知类A有公用数据成员a,并重载了一运算符,且有A obj2;const A*ptr=new A;则下列语句错误的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;
本题考察const修饰符的作用。注意:const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr是可以重新指向新的对象,而ptr->a则无法被更新。
第1题:
已知类A有公用数据成员a,并重载了“=”运算符,且有A obj2;const A*ptr new A;则下列语句错误的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;
第2题:
已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;
第3题:
已知在类A的类体中包含如下函数原型: A operator-(A)const;,下列关于这个函数的叙述中,错误的是()。
A.这是运算符-的重载运算符函数
B.这个函数所重载的运算符是一个单目运算符
C.这是一个成员函数
D.这个函数不改变类的任何数据成员的值
第4题:
已知类A有公用数据成员a,且有A obj2;A * const ptr=new A;则下列语句正确的是
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.ptr=obj2;
第5题:
已知类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则无法被更新。