已知类A有公用数据成员a,且有A ohj2;A*const ptr-new A;则下列语句正确的是( )。
A)ptr->a=100;
B)ptr=&obj2;
C)ptr++;
D)ptr=obj2;
第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,且有A obj2;A * const ptr=new A;则下列语句正确的是
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.ptr=obj2;
第3题:
已知类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则无法被更新。
第4题:
已知类A中有公用数据成员B *b;其中B为类名。则下列语句错误的是
A.A():d(new B) {} B) A(const A &oo):d(new
B.{*d= *oo.d;}
C.~A(D) {}
D.~A(){delete d;}
第5题:
已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;