天天看點

類的靜态成員

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