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

题目

有如下类的定义。应在空格处填入的语句是 ( )。 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的定义为“staticintx,y;”。
更多“有如下类的定义。应在空格处填入的语句是 ( )。class MyClass{ ______________int x, y;public: My ”相关问题
  • 第1题:

    有如下类的定义。空格处的语句是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.private

    D.不需要填入内容


    正确答案:A
    解析:本题考核静态数据成员和静态成员函数。类的静态成员函数只可以直接访问类中的静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数 change()访问了类MyClass的数据成员x和y,只能把x和y定义为静态数据成员。

  • 第2题:

    类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i) { value=new int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中,正确的是( )。

    A.MyClass my;my.value=10;

    B.MyClass my;*my,value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D

  • 第3题:

    有如下类的定义。空格处的语句是 class MyClass { ______int x,y; public: MyClass(int a=0,int b=0) { x=a; y=b; } staticvoidchange() { x-=10; y-=10; } };

    A.static

    B.const

    C.private

    D.不需要填入内容


    正确答案:A
    解析:本题考核静态数据成员和静态成员函数。类的静态成员函数只可以直接访问类中的静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数change()访问了类MyClass的数据成员x和y,只能把x和y定义为静态数据成员。

  • 第4题:

    有如下类的定义。空格处的语句是( )。 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.private

    D.不需要填入内容


    正确答案:A
    解析:类的静态成员函数只可以直接访问类中的静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数change()访问了类MyClass的数据成员x和y.,只能把x和y定义为静态数据成员。

  • 第5题:

    类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i){value=new int(i);} int*value; }; 若要对value赋值,则下面语句正确的是( )。

    A.MyClass my;my.value=10;

    B.MyClass my;*my.value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D