天天看点

类的静态成员

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

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

static的作用及用法

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

(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

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

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;      // 日

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

};

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

int Date::sCount = 0;

void Test()

Date d1, d2;

// 访问静态成员

Date::PrintCount();

int main()

Test();

return 0;

输出2;