在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; }
输出:
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; }
输出:
201 Sanjay 202 Learnfk 203 Ranjana Total Objects are: 3
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕