...对象调用么?我的书本说不能.但是编译器可以调用..vc6.0 和vs...
发布网友
发布时间:2024-10-01 11:06
我来回答
共2个回答
热心网友
时间:2024-11-09 02:52
好像不可以!
外部访问类的静态成员只能通过类名来访问。
静态成员函数无法访问属于具体类对象的非静态数据成员,也无法访问非静态成员函数,他只能访问静态数据成员和调用其余的静态成员函数。这样一来,就能防止类的非静态数据成员遭受窜改。静态成员函数没有this指针,任何在静态成员函数中显式或隐式地引用这个指针都将导致编译时刻错误。
热心网友
时间:2024-11-09 02:53
c++ primer第四版399面说,可以通过作用域操作符从类直接调用static成员,或者通过对象、引用或指向该类类型对象的指针间接调用。因此回答是完全可以。
static数据成员必须在类定义体外定义,不能通过构造函数初始化,因此static型的变量b在外面定义;静态成员函数不能直接使用非static成员,但不意味着不能访问,static void disp(Sample s)中通过传递进去的Sample类对象s来访问s的数据成员a是合理的;
所以上述编译无任何错误