【GiraKoo】C++中static关键字的作用

C++中static关键字的作用

在程序中良好的使用static,const,private等关键字,对于代码的健壮性有很大的帮助。
本文介绍的就是C++中static关键字的一些常见用法与区别。适合萌新程序员理解static的作用。

一、在类内修饰变量

限制变量的存储位置(保存在静态区),所有类对象共享一份数据。可以通过类名::变量名进行访问。

class Obj
{
private:
	static int a;	// 可以通过`Obj::a`进行访问,也可以通过`Obj o; o->a;`进行访问
	int b;			// 只可以通过`Obj o; o->b;`进行访问
}

二、在类内修饰函数

限制函数的使用方法,标明该函数不需要使用this指针,不会访问类内成员变量。可以通过类名::函数名进行调用。

class Obj
{
public:
	static int funcA();		// 可以通过`Obj::funcA()`进行访问,也可以通过`Obj o; o->funcA();`进行访问
	int funcB();			// 只可以通过`Obj o; o->funcB();`进行访问
}

int Obj::funcA()
{
	// 函数内不可以调用非static的成员变量/函数
}

三、在类外修饰变量/函数

限制变量/函数的访问域。仅允许在当前文件内访问变量/函数。

// file a.cpp
static int a;
static int funcA() {}

void func()
{
	a;			// 可以正常使用
	funcA(); 	// 可以正常使用
}

// file b.cpp

void func2()
{
	a;			// x,在b.cpp中无法看到a的定义。
	funcA(); 	// X,在b.cpp中无法看到funcA的定义。
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GiraKoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值