有如下类的定义。应在空格处填入的语句是 ( )。 class MyClass { ______________ int x, y; public: MyClass(int a=0,int b=0)

admin2010-06-06  25

问题 有如下类的定义。应在空格处填入的语句是 (   )。    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、不需要填入内容

答案1

解析 本题考核静态成员函数的使用。由题可知,函数change()为类MyClass的静态成员函数。先来了解静态成员函数:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。调用静态成员函数的格式如下:类名::静态成员函数名(参数表);
静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。
   由静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员可知,变量x和y只能是类MyClass的静态数据成员,所以x和y的定义为“static int x,y;”。
转载请注明原文地址:https://kaotiyun.com/show/nrjp777K
0

最新回复(0)