静态数据成员与静态成员函数

     一、静态数据成员

            一般来说,如果只声明了类而未定义对象,则类的一般数据成员是不占内存空间的,只有在定义对象时,才为对象的数据成员分配空间。但是静态数据成员不属于某一个对象,在为对象所分配的空间中不包括静态数据成员所占的空间。静态数据成员是在所有对象之外单独开辟空间。只要在类中定义了静态数据成员,即使不定义对象也为静态数据成员分配空间,它可以被引用。-------在一个类中,可以有一个或多个静态数据成员,所有的对象共享这些静态数据成员,都可以引用它。

           静态数据成员的生存周期:在程序编译时被分配空间的,到程序结束时才释放空间。

           静态数据成员初始化:只能在类外初始化一般形式:数据类型   类名::静态数据成员名 = 初值;注:不能用参数初始化表对静态数据成员初始化。

           静态数据成员引用:可以通过对象名引用,也可以通过类名来引用。

           静态数据成员被定义为私有:则不能再类外引用,只能通过公用的成员函数引用。

           静态数据成员与全局变量的不同:静态数据成员的作用域只限于定义该类的作用域内。

     二、静态成员函数

同静态数据成员一样,静态成员函数也是属于类的一部分而不属于对象的一部分。

静态成员函数作用:静态成员函数的作用为了能处理静态数据成员。而不能访问非静态数据成员。

静态成员函数没有this指针,所以静态成员函数不能访问本类中的非静态成员。(因为没有this指针,那么就不知道它指向某一对象,就无法对一个对象中的非静态成员进行默认访问)。除非在静态成员函数里指定是哪个对象的。但一般没有这么做。静态成员函数仅只是为了访问静态数据成员而生的。

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值