1. 类里面static修饰的成员,成为静态类成员。

  2. 类的静态成员是该类型的所有对象共有。

  3. static的作用及用法

  4. 1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

    (2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
    (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;
    (4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;
    (5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

  5. 类里面的静态成员函数相当于类里面的全局函数,它能访问类里面的私有构造函数、析构函数、普通函数以及成员变量,静态成员只能通过静态成员函数进行访问。

include<iostream>

using namespace std;

class Date

{

public:

Date()

{

cout << "Date ()" << endl;

++sCount;

}

void Display()

{

cout << "year:" << _year << endl;

cout << "month:" << _month << endl;

cout << "day:" << _day << endl;

}

// 静态成员函数

static void PrintCount()

{

cout << "Date count:" << sCount << endl;

}

private:

int _year;     // 年

int _month;    // 月

int _day;      // 日

private:

static int sCount; // 静态成员变量,统计创建时间个数

};

// 定义并初始化静态成员变量

int Date::sCount = 0;

void Test()

{

Date d1, d2;

// 访问静态成员

Date::PrintCount();

}

int main()

{

Test();

return 0;

}

输出2;