#include < iostream. h >
class test{
private: static int x; int y;
public: void test1 ( int a, int b) { x = a; y = b; }
};
void main() {
test a;
a. test1 (2,3) ;
}

改错题:以下程序中有一处错误,请抄写有错误的语句并给出错误原因。


#include < iostream. h >
class test{
private: static int x; int y;
public: void test1 ( int a, int b) { x = a; y = b; }
};
void main() {
test a;
a. test1 (2,3) ;
}


【正确答案】:

{X=A;Y=B;};错误,在类的非静态函数中不可直接访问类的静态成员。


【题目解析】:

类的静态成员函数没有this指针,不能在静态成员函数内访问非静态的成员,即通常情况下,类的静态成员函数只能处理类的静态成员变量。

静态成员函数内也不能调用非静态成员函数。同理在类的非静态函数中不可直接访问类的静态成员。


Top