【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的定义。
}

你可能感兴趣的:(技术分享,c++,开发语言)