C++_static关键字

静态变量分为外部、内部和无链接性,具有更长的寿命和固定的数量。它们在程序运行期间始终存在,不使用栈空间。静态类成员变量必须在类外初始化,且不能在声明时初始化。C++11引入constexpr用于创建常量表达式。
摘要由CSDN通过智能技术生成

静态持续变量

3种链接性:

  1. 外部链接性 其他文件可访问
  2. 内部链接性 当前文件可访问
  3. 无链接性 当前函数或代码块可访问
int global = 100;	//外部链接性
static int one_file = 50;	//内部链接性
int main(){
	...
}
void function1(){
	static int count = 0;	//无链接性
}

静态持续变量与自动变量相比,寿命更长;
数目在运行期间不变,一直存在,不需要使用栈管理;
无初始化时,默认赋0;

静态类成员变量

//stringbad.h
class StringBad{
	private:
		static int num_strings;	// 静态类成员变量
		...
}
//stringbad.cpp
#include "stringbad.h"
int StringBad::num_strings = 0; // 初始化静态类成员变量
...

注意: 不能在类声明中初始化静态成员变量,因为声明描述了如何分配内存,但并不分配内存.

C++11 constexpr 创建常量表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值