C++ static關鍵字

在C++中,static是屬於類而不是實例的關鍵字或修飾符。 因此,不需要實例來訪問靜態成員。 在C++中,static可以是字段,方法,構造函數,類,屬性,操作符和事件。

C++ static關鍵字的優點

記憶體效率: 現在我們不需要創建實例來訪問靜態成員,因此它節省了記憶體。 此外,它屬於一種類型,所以每次創建實例時不會再去獲取記憶體。

C++靜態字段

使用static關鍵字聲明字段稱為靜態字段。它不像每次創建對象時都要獲取記憶體的實例字段,在內存中只創建一個靜態字段的副本。它被共用給所有的對象。

它用於引用所有對象的公共屬性,如:Account類中的利率(rateOfInterest),Employee類中的公司名稱(companyName)等。

C++靜態字段示例

下麵來看看看C++中靜態(static)字段的簡單示例。

#include <iostream>
using namespace std;
class Account {
   public:
       int accno; //data member (also instance variable)
       string name; //data member(also instance variable)
       static float rateOfInterest;
       Account(int accno, string name)
        {
             this->accno = accno;
            this->name = name;
        }
       void display()
        {
            cout<<accno<< "<<name<< " "<<rateOfInterest<<endl;
        }
};
float Account::rateOfInterest=6.5;
int main(void) {
    Account a1 =Account(201, "Sanjay"); //creating an object of Employee
    Account a2=Account(202, "Calf"); //creating an object of Employee
    a1.display();
    a2.display();
    return 0;
}

上面代碼執行結果如下-

201 Sanjay 6.5
202 Calf 6.5

C++靜態字段示例:統計對象數量

下麵來看看看C++中static關鍵字的另一個例子,統計創建對象的數量。

#include <iostream>
using namespace std;
class Account {
   public:
       int accno; //data member (also instance variable)
       string name;
       static int count;
       Account(int accno, string name)
        {
             this->accno = accno;
            this->name = name;
            count++;
        }
       void display()
        {
            cout<<accno<<" "<<name<<endl;
        }
};
int Account::count=0;
int main(void) {
    Account a1 =Account(201, "Sanjay"); //creating an object of Account
    Account a2=Account(202, "Calf");
     Account a3=Account(203, "Ranjana");
    a1.display();
    a2.display();
    a3.display();
    cout<<"Total Objects are: "<<Account::count;
    return 0;
}

上面代碼執行結果如下-

201 Sanjay
202 Calf
203 Ranjana
Total Objects are: 3

上一篇: C++ this指針 下一篇: C++結構體