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

静态成员函数

       可以将类成员函数声明为静态的(函数声明中必须包含关键字static,如果函数定义是独立的,则其中不能包含关键字static)。

 

(1)不能通过对象调用静态成员函数,所以不能使用this指针;
(2)静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;
(3)如果静态成员函数是在公有部分声明的,则可以使用类名和作用域解析操作符来调用。

 

例如:

给String类添加一个名为HowMany()的静态成员函数
static int HowMany(){return num_string;}

 

调用它的方式如下
int count = string::HowMany();

(也可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数)

 

      其次,由于静态成员函数不与特定的对象相关联,因此只能使用静态数据成员。无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数。非静态成员函数可以任意地访问静态成员函数和静态数据成员。

可以使用静态成员函数来设置类级(classwide)标记,以控制某些类接口的行为。例如,类级标志可以控制显示类内容的方法所使用的格式。

 

静态数据成员

 

在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。

 

(1)静态数据成员是该类的所有对象所共有的;
(2)静态数据成员定义时要分配空间,所以不能在类声明中定义;
(3)静态数据成员和普通数据成员一样遵从public,protected,private访问规则。

 

初始化静态数据成员的格式为:
<数据类型><类名>::<静态数据成员名>=<值>

 

访问形式为:
<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值