static 在 C 语言中的含义
-
一个全局变量是 static 的, 那么这个全局变量就只在
这个 .c 文件内生效. -
一个本地变量是 static 的, 那么这个本地变量就具有持久存储了.
-
一个 static 的函数, 这个函数只能在这个 .c 文件里访问.
c++ 中的含义
Global static hidden in file
Static inside functions
- static 的本地变量就是全局变量
- 不过它有一个特殊的访问属性,只能在函数内部被访问
Static applied to objects
Conditional Construction
Global objects
Static Initialization Dependency
Can we apply static to members
Static Members
#include <iostream>
using namespace std;
class A
{
private:
static int i;
public:
A() { i = 0; }
void set(int ii) { i = ii; }
void print() { cout << i << endl; }
static void say(){cout << i << endl;}
};
int A::i; // 必须有这一句,一定要有.cpp文件进行放置静态成员变量
// g++ main.cpp && ./a.out
// g++ main.cpp -o maincpp.out && ./maincpp.out
int main()
{
A a,b;
a.set(10);
b.print();
//cout << A::i << endl;
b.set(100);
A::say();
return 0;
}