<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 簡介 在類定義中,它的成員(包括成員變量和成員函數),這些成員可以用關鍵字static聲明為靜態的,稱為靜態成員。 不管這個類創建了多少個對象,靜態成員只有一個拷貝,這個拷貝被所有屬于這個類的對象共享。 # 靜態成員變量 在一個類中,若將一個成員變量聲明為static,這種成員稱為靜態成員變量。與一般的數據成員不同,無論建立了多少個對象,都只有一個靜態數據的拷貝。靜態成員變量,屬于某個類,所有對象共享。 靜態變量,是在編譯階段就分配空間,對象還沒有創建時,就已經分配空間。 * 靜態成員變量必須在類中聲明,在類外定義。 * 靜態數據成員不屬于某個對象,在為對象分配空間中不包括靜態成員所占空間。 * 靜態數據成員可以通過類名或者對象名來引用。 ~~~ class Person{ public: //類的靜態成員屬性 static int sNum; private: static int sOther; }; //類外初始化,初始化時不加static int Person::sNum = 0; int Person::sOther = 0; int main(){ //1. 通過類名直接訪問 Person::sNum = 100; cout << "Person::sNum:" << Person::sNum << endl; //2. 通過對象訪問 Person p1, p2; p1.sNum = 200; cout << "p1.sNum:" << p1.sNum << endl; cout << "p2.sNum:" << p2.sNum << endl; //3. 靜態成員也有訪問權限,類外不能訪問私有成員 //cout << "Person::sOther:" << Person::sOther << endl; Person p3; //cout << "p3.sOther:" << p3.sOther << endl; system("pause"); return EXIT_SUCCESS; } ~~~ # 靜態成員函數 在類定義中,前面有static說明的成員函數稱為靜態成員函數。靜態成員函數使用方式和靜態變量一樣,同樣在對象沒有創建前,即可通過類名調用。靜態成員函數主要為了訪問靜態變量,但是,不能訪問普通成員變量。 靜態成員函數的意義,不在于信息共享,數據溝通,而在于管理靜態數據成員,完成對靜態數據成員的封裝。 * 靜態成員函數只能訪問靜態變量,不能訪問普通成員變量 * 靜態成員函數的使用和靜態成員變量一樣 * 靜態成員函數也有訪問權限 * 普通成員函數可訪問靜態成員變量、也可以訪問非經常成員變量 ~~~ class Person{ public: //普通成員函數可以訪問static和non-static成員屬性 void changeParam1(int param){ mParam = param; sNum = param; } //靜態成員函數只能訪問static成員屬性 static void changeParam2(int param){ //mParam = param; //無法訪問 sNum = param; } private: static void changeParam3(int param){ //mParam = param; //無法訪問 sNum = param; } public: int mParam; static int sNum; }; //靜態成員屬性類外初始化 int Person::sNum = 0; int main(){ //1. 類名直接調用 Person::changeParam2(100); //2. 通過對象調用 Person p; p.changeParam2(200); //3. 靜態成員函數也有訪問權限 //Person::changeParam3(100); //類外無法訪問私有靜態成員函數 //Person p1; //p1.changeParam3(200); return EXIT_SUCCESS; } ~~~ # const靜態成員屬性 如果一個類的成員,既要實現共享,又要實現不可改變,那就用 static const 修飾。定義靜態const數據成員時,最好在類內部初始化。 ~~~ class Person{ public: //static const int mShare = 10; const static int mShare = 10; //只讀區,不可修改 }; int main(){ cout << Person::mShare << endl; //Person::mShare = 20; return EXIT_SUCCESS; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看