静态成员函数
1.所有对象共享同一个函数
2.静态成员函数只能访问静态成员变量
3.静态成员函数也有访问权限,写在private 里,类外是访问不到的
对静态成员函数和非静态成员函数的访问方式不同
对于非静态成员变量需要先创建对象,在通过对象进行访问函数
class MyClass {
public:
void func();
};
int main() {
MyClass a;
a.func();
return 0;
}
对于静态成员变量,可以使用类名和对象进行访问
class MyClass {
public:
static void func();
};
int main() {
MyClass a;
a.func();//对象访问
MyClass::func();//类名访问
return 0;
}
非静态成员函数它们是针对类的每一个对象而存在的,只有创建了类的对象才能调用这些函数,非静态成员函数可以访问类中的所有成员变量和成员函数,包括非静态成员变量和函数,也包括静态成员变量和函数。
静态成员函数内存只有一份,而非静态成员函数的内存有多份,每个对象都有一份,静态成员函数只能访问类中的静态成员变量和静态成员函数,无法访问非静态成员变量和函数,静态成员函数可以脱离类的对象而单独存在