C++ static关键字

C++ static关键字

In C++,static是一个关键字或修饰符,属于类型而不是实例。因此,不需要实例就可以访问静态成员。在C++中,static可以是字段、方法、构造函数、类、属性、运算符和事件。

C++ static关键字的优点

内存高效: 现在我们不需要创建实例来访问静态成员,所以它节省了内存。此外,它属于类型,因此在创建实例时不会每次都分配内存。

C++静态字段

被声明为静态的字段称为静态字段。与实例字段不同,每次创建对象时都会分配内存,静态字段在内存中只创建了一份副本,它被所有对象共享。

它用于引用所有对象的共同属性,例如在Account情况下的rateOfInterest,在Employee情况下的companyName等。

C++静态字段示例

让我们来看一个C++静态字段的简单示例。

#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, "Nakul"); //creating an object of Employee
    a1.display();  
    a2.display();  
    return 0;
}

输出:

201 Sanjay 6.5
202 Nakul 6.5

C++静态字段示例:计算对象的数量

让我们看看C++中另一个使用静态关键字计算对象的示例。

#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, "Nakul"); 
     Account a3=Account(203, "Ranjana");
    a1.display();  
    a2.display();  
    a3.display();  
    cout<<"Total Objects are: "<<Account::count;
    return 0;
}

输出:

201 Sanjay
202 Nakul
203 Ranjana
Total Objects are: 3

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程