问题
单项选择题
有以下类定义
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()不是常成员函数,所以这样调用会发生编译错误。