问题 单项选择题

有以下类定义
class Point
public:
Pointint x = 0, int y=0) _x = x; _y = y;
void Move int xoff, int yoff)
_x +=xoff;_y+=yoff;
void Print() const
cout<<’(’<<_x<<’,’<<_y<<’)’ << end1;
private:
int_x,_y;
;
下列语句中会发生编译错误的是

A.Point pt;pt.Print();

B.const Point pt;pt.Print();

C.Point pt;pt.Move(1, 2);

D.const Point pt;pt.Move(1, 2)

答案

参考答案:D

解析: 本题考核常对象、常数据成员与常成员函数。如果将二个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数,D选项中对象pt为常对象,而成员函数Move()不是常成员函数,所以这样调用会发生编译错误。

判断题
填空题