最近开始找工作,发现许多基础都已经忘记了,记录下今天学习的,方便下次忘记时查看。
static的两个功能。
1.数据持久化
a.修饰局部变量时,只初始化一次,数据放在静态存储区。
b.修饰C++ 类成员时,为所有实例所共享。
c.修饰C++ 类成员函数时,属于整个类所有,且该函数只能访问类的静态变量。
2.隐藏
修饰函数时,只具有隐藏作用。只能被当前模块内的函数调用。
下面是一个自计数的C++的类。
#define INT int
class A
{
public:
A()
{
nCount++;
}
A(const A & a)
{
nCount++;
}
~A()
{
nCount--;
}
static int HowMany()
{
return nCount;
}
private :
static INT nCount ;
};
INT A::nCount = 0;