宿迁网站建设报价,山东平台网站建设哪里有,阿里云建设网站的流程,优化关键词的作用static用法
修饰普通变量#xff1a;static关键字可用于修改普通变量的存储区域和生命周期#xff0c;使其存储在静态区#xff0c;在程序运行前就分配了空间。如果有初始值#xff0c;将使用初始值进行初始化#xff0c;否则系统会用默认值初始化它。修饰普通函数#…static用法
修饰普通变量static关键字可用于修改普通变量的存储区域和生命周期使其存储在静态区在程序运行前就分配了空间。如果有初始值将使用初始值进行初始化否则系统会用默认值初始化它。修饰普通函数static关键字可用于限制函数的作用范围使其仅在定义该函数的文件内可用。这有助于防止在多人协作项目中与其他命名空间中的函数重名。修饰成员变量在类中static关键字可用于修饰成员变量使得所有的类对象只保存一个该变量的副本而且不需要生成对象就可以访问该成员。修饰成员函数static关键字可用于修饰成员函数使得不需要生成对象就可以访问该函数。但需要注意在静态函数内部不能访问非静态成员因为它没有类对象的上下文。
代码示例
#include iostream// 示例1静态局部变量
void countCalls() {// 静态局部变量只在第一次调用时初始化之后保持持久性static int count 0;count;std::cout Function has been called count times. std::endl;
}// 示例2静态全局变量
static int globalVar 42;// 示例3静态成员变量和静态成员函数
class MyClass {
public:static int staticVar; // 静态成员变量static void staticFunction() {std::cout This is a static member function. std::endl;}
};int MyClass::staticVar 0; // 初始化静态成员变量int main() {// 示例1静态局部变量countCalls();countCalls();countCalls();// 示例2静态全局变量std::cout Global variable: globalVar std::endl;// 示例3静态成员变量和静态成员函数MyClass obj1;MyClass obj2;obj1.staticVar 1;obj2.staticVar 3;std::cout obj1.staticVar: obj1.staticVar std::endl;std::cout obj2.staticVar: obj2.staticVar std::endl;// 静态成员变量可通过类名直接访问std::cout MyClass::staticVar: MyClass::staticVar std::endl;// 调用静态成员函数MyClass::staticFunction();return 0;
}输出结果
Function has been called 1 times.
Function has been called 2 times.
Function has been called 3 times.
Global variable: 42
obj1.staticVar: 3
obj2.staticVar: 3
MyClass::staticVar: 3
This is a static member function.