1. 主页
  2. 文档
  3. C++教程
  4. C++类
  5. C++ static

C++ static

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇文章对您有用吗?