static.cpp,RUN
//static的用法
#include <iostream>
//函数中的static,相当于Fun_static函数域中的全局变量
void Fun_static()
{
static int count = 0; //第一次调用时初始化,之后就不再调用。且count一直存在
count++;
std::cout << count << std::endl;
}
class Vector
{
private:
int x, y;
static int count;
//静态数据成员。
//相当于类Vector域中的全局变量。Vector::count,所有Vector创建的对象都包含这个全局变量
//此为声明,须在类声明的外面定义, int Vector::count = 0;
public:
Vector()
{
x = 0;
y = 0;
Vector::count++; //或者count++;
}
Vector(int x, int y)//带参数的普通构造函数
{
this->x = x;
this->y = y;
Vector::count++; //或者count++;
}
static int Count()//static函数
{//只能使用static数据成员, 调用方式Vector::Count();
return count;
}
};
int Vector::count = 0; //类Vector的static数据成员定义
int main()
{
Vector v1, v2(2,3);
std::cout << Vector::Count() << std::endl;
return 0;
}