C++之 static 关键字

C++之 static 关键字

C++中的关键字 static,顾名思义表示静止、静态。

1. 作用于函数内部的局部变量

局部作用域静态变量的特点:当一个函数返回后,下一次再调用时,该变量还会保持上次的值,函数内部的静态变量只开辟一次空间,且不会因为多次调用产生副本,也不会因为函数返回而失效。

注意:

  1. 普通局部变量如果未赋予初值,编译器会报错;
  2. 当局部变量加上 static 后,定义时如果未赋予初值,则会默认初始化为 0

2. 作用于类的成员

解决同一个类的不同对象之间数据和函数共享问题

2.1 作用于类的数据成员

静态成员在每一个类中只有一个副本,由该类所有对象共同维护和使用,从而实现同一个类的不同对象的数据共享。需要注意:

  • 使用 类名::标识符 的方式访问静态数据成员,因为静态数据成员不属于任何一个对象
  • 对静态数据成员初始化,在类定义外进行,以这种方式专门为他们分配空间。如果直接在类内定义静态数据成员,编译器则会报错

2.2 作用于类的函数成员

静态成员函数就是使用 static 关键字声明的函数成员,同静态数据成员一样,静态成员函数也属于整个类,由该类所有对象共同拥有,为所有对象共享

(1)静态成员函数主要用于处理该类的静态数据成员,可以直接调用静态数据成员。如果访问非静态成员,要通过对象来访问。

class Person {
public:
	static void findPerson(Person person);
private:
	int age;
	static int sex;
};
void Person::findPerson(Person person) 
{
	cout << age;		// 对 age 的引用是错误的
	cout << person.age;	// 正确
	cout << sex;		//对 sex 的引用是正确的的,引用静态数据成员
}

(2)在类外使用j静态成员函数

  • 使用 类名 :: 函数名 操作符来调用静态成员函数
  • 使用 类.函数名 调用
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值