第一行你要输入如 a=3 b=5 这样子,
静态成员不属于某个具体的对象,而是被所有对象所共享。即静态成员属于整个类,不属于具体某个对象;非静态成员属于具体某个对象。因而静态成员函数只能访问类的静态成员,不能访问类中非静态成员。
那么,如何让静态函数访问类的非静态成员?
方法是:对于静态成员函数,我们显示的为其传递一个对象的首地址(该类的指针)。一般在这个静态成员函数的形参列表中加入一个 void* 类型的参数,来保存对象的首地址。并在该函数内部对该参数进行类型转换,通过类型转换后的参数来调用非静态成员。
或者用一个类的全局指针数组,保存每一个创建出来的类的this指针,用全局指针去调用。