有如下类的定义。应在空格处填入的语句是 ( )。
class MyClass
______________ int x, y;
public:
MyClass(int a=0,int b=0)
x=a;
y=b;
static void change)
x-=10;
y-=10;
;
A.static
B.const
C.mutable
D.不需要填入内容
参考答案:A
解析: 本题考核静态成员函数的使用。由题可知,函数change()为类MyClass的静态成员函数。先来了解静态成员函数:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。调用静态成员函数的格式如下:类名::静态成员函数名(参数表);
静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。
由静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员可知,变量x和y只能是类MyClass的静态数据成员,所以x和y的定义为“static int x,y;”。