1. 程式人生 > >c++靜態類實現

c++靜態類實現

廢話不多說,先上程式碼:

靜態類 View.h檔案程式碼:

static class  View
{
private:
    static Student  student;
public:

    static int much ;
    static void  addStudent();

};

view.cpp 實現程式碼:

Student View::factor;
int View::much = 0;
//必須要有的靜態成員實現程式碼

void View::addStudent() {
    Student st1;
    factor.add(st1);
    //此處靜態成員不能使用 this->
}

主函式 main 外部呼叫


#include "View.h"


int main()
{
    View::addStudent();
    //靜態函式呼叫是可採用此方法
    return 0;
}

注:

  • 靜態類所必須的初始化在類外進行(不應在.h檔案內實行),而前面不加static,以免與外部靜態變數(物件)相混淆。

  • 初始化時不加該成員的訪問許可權控制符private,public等。

  • 初始化時使用作用域運算子來標明它所屬類,靜態資料成員是類的成員(而不是物件的成員,因沒有物件)。

  • 靜態資料成員是靜態儲存的,它是靜態生存期,必須對它進行初始化。

  • 不能再實現中使用this關鍵字

    因為它已經例項化,開闢了記憶體

  • 呼叫時,標明所屬靜態類(也可以像math類採用名稱空間,沒有命名衝突)