static关键字

static 关键字主要作用

1.全局静态变量
全局静态变量,内存会申请在静态存储区,在程序运行期间都在,本文件可见

	staic int g_count = 0;
	int main(){
		return 0;
	}

2.局部静态变量
局部静态变量,作用于为局部作用域,但是生命周期是存在整个程序运行期间,初始化语句只执行一次;

	int getCount(){
	// 此语句只会执行一次
		static int count = 0;
		return ++count;
	}
	int main(){
		while(1){
			getCount();
		}
		return 0;
	}

3.静态函数
函数默认是extern,使用static的函数仅本文件可见

	static int getCount();
	

4.静态成员函数
静态成员函数不可以访问类的成员函数,可以使用class:func访问

class DuckA {
public:
    static void loadModel() {
        cout << "Duck" << endl;
        // 静态成员属于类本身,而成员变量model是在类对象产生之后产生的, 
        // 静态成员函数调用成员变量相当于使用未定义的变量
        model = 1;  // error
        time = 10;
    }
    static int time;
    int model;
};
int DuckA::time = 0;
int main()
{
    DuckA::loadModel();
	DuckA a;
	a.loadModel();
	return 0;
}

5.静态成员变量
类内申明,类外定义,避免多次申请内存

static 主要使用场景

1.调用方便,不适用对象就可以使用
2.一切不用产生对象就可以确定行为的函数都可以设计为静态函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值