C++ 中 static 关键字及其各种用法


当使用 static 关键字时,变量或数据成员或函数将无法再次修改。它被分配到程序的生命周期内。静态函数可以直接使用类名调用。

静态变量只初始化一次。编译器将变量保留到程序结束。静态变量可以在函数内部或外部定义。它们对块是局部的。静态变量的默认值为零。静态变量在程序执行期间一直存在。

以下是 static 关键字的语法。

static datatype variable_name = value; // Static variable
   static return_type function_name { // Static functions
   ...
}

这里,

数据类型 − 变量的数据类型,例如 int、char、float 等。

变量名 − 这是用户给定的变量名。

− 用于初始化变量的任何值。默认值为零。

返回类型 − 函数的数据类型,用于返回值。

函数名 − 函数的任何名称。

以下是一个 static 关键字的示例。

示例

 实时演示

#include <bits/stdc++.h>
using namespace std;
class Base {
   public : static int val;
   static int func(int a) {
      cout << "\nStatic member function is called";
      cout << "\nThe value of a : " << a;
   }
};
int Base::val=28;
int main() {
   Base b;
   Base::func(8);
   cout << "\nThe static variable value : " << b.val;
   return 0;
}

输出

Static member function is called
The value of a : 8
The static variable value : 28

在上面的程序中,声明了一个静态变量。一个静态函数在 Base 类中定义,如下所示:

public : static int val;
static int func(int a) {
   cout << "\nStatic member function called";
   cout << "\nThe value of a : " << a;
}

在类之后和 main() 之前,静态变量初始化如下。

int Base::val=28;

在 main() 函数中,创建了 Base 类的对象并调用了静态变量。静态函数也无需使用 Base 类对象即可调用。

Base b;
Base::func(8);
cout << "\nThe static variable value : " << b.val;

更新于: 2020-06-26

312 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告