C++ 静态(static)

C++ 静态(static) 首页 / C++入门教程 / C++ 静态(static)

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

静态关键字优势

高效内存  -  现在,我们无需创建实例来访问静态成员,因此可以节省内存。而且,它属于该类型,因此每次创建实例时都不会获取内存。

静态字段

声明为静态的字段称为静态字段。与实例字段每次创建对象时都会获取内存的实例字段不同,内存中仅创建了一个静态字段副本。它与所有对象共享。

它用于引用所有对象的公共属性,例如对于Account来说是rateOfInterest,对于Employee来说是companyName。

静态字段示例

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

#include <iostream>
using namespace std;
class Account {
   public:
       int accno; //数据成员(也是实例变量)   
       string name; 
       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"); //创建 Employee 对象
    Account a2=Account(202, "Learnfk"); //创建 Employee 对象
    a1.display();  
    a2.display();  
    return 0;
}

输出:

链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-static.html

来源:LearnFk无涯教程网

201 Sanjay 6.5
202 Learnfk 6.5

让我们来看C++中static关键字的另一个示例,该示例对对象进行计数。

无涯教程网

#include <iostream>
using namespace std;
class Account {
   public:
       int accno; //数据成员(也是实例变量)   
       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"); //创建 Account 对象
    Account a2=Account(202, "Learnfk"); 
    Account a3=Account(203, "Ranjana");
    a1.display();  
    a2.display();  
    a3.display();  
    cout<<"Total Objects are: "<<Account::count;
    return 0;
}

输出:

链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-static.html

来源:LearnFk无涯教程网

201 Sanjay
202 Learnfk
203 Ranjana
Total Objects are: 3

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

微服务架构核心20讲 -〔杨波〕

SQL必知必会 -〔陈旸〕

ZooKeeper实战与源码剖析 -〔么敬国〕

Spark性能调优实战 -〔吴磊〕

爆款文案修炼手册 -〔乐剑峰〕

性能优化高手课 -〔尉刚强〕

说透区块链 -〔自游〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

林外 · 专利写作第一课 -〔林外〕

好记忆不如烂笔头。留下您的足迹吧 :)