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的定义。
}
标签:GiraKoo,Obj,函数,int,C++,访问,funcA,static
From: https://www.cnblogs.com/girakoo/p/18515950