C++ static关键字

static关键字作用

隐藏,保持变量内容的持久性,默认初始化为0

static修饰局部变量

static int a ; a默认初始化为0
void aa( int)
{
	static int a;
}
限定了a的作用域在函数aa内部,函数外部不能看到a,a只初始化一次。下次调用aa函数,a的值会继承上次函数运行的结果。

static修饰全局变量

全局变量在其他文件内也是可见的,加上了static后,变量只在当前文件可见。

static修饰函数

static修饰函数,函数在当前文件可见,不会同其他文件的同名函数起冲突

类的静态成员

在类中,静态成员可以实现多个对象之间数据共享。只存储一处,供所有对象共享。

类的静态函数

static 除了可以声明静态成员变量,还可以声明静态成员函数。普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员。静态函数可以通过类来调用。非静态函数不行。

class Point{
public:
    void init()
    {cout << "init" << endl;}

    static void output()
    {cout << "output";}
};

int main()
{
    Point p;
    //Point::init();  会报错
    p.init();    
    Point::output();
}

静态成员变量不能在类的内部初始化,在类的内部只是声明,定义必须在类外,定义时不能加上static关键字,

定义时可以指定初始值,也可以不指定,不指定时系统默认其初始值为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值