static

static

使用位置
在类或结构体中时:
在这个类的所有实例中,这个变量只有一个实例(就是说所有类实例都共享这个变量的值,这个变量的值一改变,所有类中的这个变量的值都改变)

例子:如果我们定义了一个类叫people,这个类中有一个变量是satic int x,之后我们在主函数中声明两个people实例p1,p2。如果我们想改变x的值,直接写people::x=5即可,不用把实例名带上。

class Player
{
public:
	static int age;
	static void print()
	{
		std::cout << age << std::endl;
		
	}
};
int Player::age;//在实体定义静态变量 哪些是这些静态变量的作用域 然后是变量的名称
int main()
{
	Player player;
	player.age = 9;//正确调用静态变量的方法应该是Player::age
	player.print();//正确调用静态方法是Player::print()

注意 静态方法不能访问非静态变量 因为静态方法没有类实例
每个静态方法都是通过获取当前类的一个实例作为参数,类中是看不到这个数的

static void print(Player e)
{
	std::cout << e.age << std::endl;
	
}//这是非静态方法工作的过程
static void print()
{ 
 std::cout << e.age << std::endl;
}//这是静态方法访问非静态变量的过程

static在类和结构体外使用时:
限定被修饰的变量只能在本c++文件中使用
尽量使用静态变量 能够节省工作开销 因为不用和其他文件进行链接

posted @ 2024-07-08 09:48  Wzline  阅读(4)  评论(0编辑  收藏  举报