静态成员

静态成员

一.属于类而非对象

•静态成员变量不包含在对象实例中,具有进程级的生命周期

•静态成员函数没有this指针,也没有常属性

•静态成员依然受类作用域和访问控制限定符的约束

二外部定义和初始化

•静态成员变量的定义和初始化,只能在类的外部而不能在构造函数中进行

class Account 
 { 
    public: 
            static double s_interest; 
 };
–double Account::s_interest = 0.001;

二.通过类或对象访问

•访问静态成员,既可以通过类也可以通过对象

–Account acc (...), pacc = &acc; 
 acc.s_interest = 0.002; 
 pacc->s_interest = 0.003; 
 Account::s_interest = 0.004;

三.对象共享

•静态成员变量为该类的所有对象实例所共享

–Account acc1 (...), acc2 (...), acc3 (...); 
 acc1. s_interest += 0.001; 
 cout << Account::s_interest << endl; // 0.002 
 acc2. s_interest += 0.002; 
 cout << Account::s_interest << endl; // 0.004 
 acc3. s_interest += 0.003; 
 cout << Account::s_interest << endl; // 0.007 
 Account::s_interest -= 0.004; 
 cout << acc1.s_interest << endl; // 0.003 
 cout << acc2.s_interest << endl; // 0.003 
 cout << acc3.s_interest << endl; // 0.003

四.静静非静静非静

•静态成员函数只能访问静态成员变量或调用静态成员函数

•非静态成员函数既可以访问静态成员变量或调用静态成员函数,也可以访问非静态成员变量或调用非静态成员函数

这里写图片描述

五.具有成员访问性的全局标识符

•事实上,类的静态成员变量和静态成员函数,更象是普通的全局变量和全局函数,
只是多了一层类作用域和访问控制属性的限制,相当于具有成员访问性的全局变量和全局函数

•类的静态成员变量通常用于表示需要在该类的多个实例化对象间共享的属性,如银行账户的利率

•类的静态成员函数一方面可以独立于对象充当静态成员变量的访问接口,另一方面它也可以在不破坏封装性的前提下,让一个类有能力管理自己的对象

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值