C++静态成员

本文详细介绍了C++中的静态数据成员和静态函数成员。静态数据成员被所有类的对象共享,其值在对象间是同步的。静态函数成员不能访问非静态成员,主要在对象创建前用于设置特殊任务。静态成员的定义和使用方式也在文中进行了阐述。
摘要由CSDN通过智能技术生成

1.静态数据成员

静态数据成员 是类中的一个成员,定义时前面有static关键字修饰它的特点是

  • (1)同一个类中的所有对象都共享该变量。如果类的一个对象改变了静态数据成员的值,那么该类的所有对象的该静态数据成员的值都将改变。
  • (2)静态变量不依赖对象而存在,无论是否定义该类的对象,这种类型的变量都存在。
class StaticDemo {
private:
    static int x;    //说明静态的数据成员
    int y;
public:
    static void setX(int);
    ...;
};

注意: 仅仅对静态变量x进行如上说明还是不够的,还必须要在类外对它进行定义

int StaticDemo::x;   //定义静态的数据成员,初始值是0

在类外对静态数据成员x给出定义,在不显示初始化的情况下,他的初值是0,。如果按照如下方式定义x,那么它的初值是100。

int StaticDemo::x = 100;

2.静态函数成员

从函数表面上看,静态函数成员是类中的函数,他前面有static修饰,格式为:

static <返回值类型> <函数名>(形式参数表)

静态函数成员在类外的定义和其它函数成员定义一样,不需要加static
静态的函数成员不能访问类中的非静态成员。换句话讲,它只能访问类中定义的静态成员(即静态数据成员和函数成员),这是因为:

  • (1)静态数据成员实际上是类外定义的一个变量,它的生存周期和整个程序的生存周期一样,在定义对象之前,静态数据成员就已经存在。
  • (2)静态函数成员和静态数据成员类似,在对象生成之前就已经存在。在对象产生之前,静态函数成员就能够访问其它静态成员,从而可以给对象设置特殊任务。

注意:

  • 调用静态函数成员setX的语句如下:
StaticDemo::setX(num);

静态函数成员是通过类名和作用域调用的,也可以使用通常的调用方法,采用对象点的方式调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值