類裡面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;