一、静态全局函数:普通的全局函数+static限制
static void func(){}
静态全局函数加入static限制后,只能在文件所在的编译单位内使用,不能在其它编译单位内使用。
二、静态成员函数:类中的成员函数 + static限制
class A
{
public:
static void func();
static int a;
}
// 静态成员函数及变量:类内声明,类外实现
void A::func(){}
int A::a = 100;
1、在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。如上例中的成员变量 a
2、在类中的静态成员函数,只能访问类中的静态成员变量
3、可以通过对象引用或类名(不需要实例化)访问静态成员。
// 通过类名访问静态成员函数和静态成员变量
A::func();
A::a;
以下是完整代码:
#include <iostream>
using namespace std;
class Aaa
{
public:
static void func();
static int a;
};
// 静态成员函数:类内声明,类外实现
void Aaa::func()
{
cout << "It's func()" << endl;
}
// 静态成员变量:类内声明,类外实现
int Aaa::a = 100;
// 全局静态函数:其他文件中不能引用
static void GlobalFunc()
{
cout << "It's global static func!" << endl;
}
int main()
{
Aaa::func(); // 使用类名访问静态成员函数
cout << "a = " << Aaa::a << endl; // 使用类名访问静态成员变量
GlobalFunc();
return 0;
}
谢谢阅读