1.静态成员函数
a.静态成员函数是类中特殊的成员函数(静态成员函数没有隐藏的this参数,不能直接去访问普通的成员函数和成员变量)
b.静态成员函数属于整个类所有
c.可以通过类名直接访问公有静态成员函数(变量)
d.可以通过对象名访问公有静态成员函数(变量)
静态成员函数的定义:
直接通过static关键字修饰成员函数
class Test { public: static void Func1(); //声明 static void Func2(); }; int Test::Func2 //定义 { return 0; }
eg:
#include <stdio.h> class Demo { int i; public: int getI(); //声明 static void StaticFunc(const char *s); static void StaticSetI(Demo& d, int v); }; int Demo::getI() //定义 { return i; } void Demo::StaticFunc(const char *s) { printf("StaticFunc: %s\n", s); } void Demo::StaticSetI(Demo& d, int v) { d.i = v; //成员函数可以直接调用成员变量,就算它是private (注意静态成员函数的特殊性) } int main() { Demo::StaticFunc("main Begin..."); //通过类名调用 Demo d; Demo::StaticSetI(d, 10); printf("d.i = %d\n", d.getI()); Demo::StaticFunc("main End..."); return 0; }