[转载]c++静态变量,静态函数,私有静态变量的使用小记

[原文出处](https://blog.csdn.net/lxp116/article/details/19543971)

c++静态变量,静态函数,私有静态变量的使用小记

自从上了小学才发现,记忆力大不如前了,看来小的时候没有开发出来,导致记忆模块荒凉遍野,现在很多学过,记过,用过的东西,一段时间以后发现除了有些印象外,再无其他,所以正证明那句话:“好记性不如烂笔头”。做个笔记不但是为以后重新温习做记录,也可以加深一下印象,有百利而无一害,并且在网上记录一下,方便网民们相互提醒交流,万一以后老了翻翻看,还能根据记录写写个人传记什么的。

 

前段时间面试一家大公司世界500强,笔试中考了两个模式,一个是singleton,一个是观察者模式,平时开发我也用不到模式,慢慢的什么模式都不记得了,所以又被鄙视了。。。shit。那平时搞开发我都用了什么??? 尼玛,我好想啥也没用啊!

 


     
     
  1. //Singleton.h
  2. #include <iostream>
  3. using namespace std;
  4. class Singleton
  5. {
  6. public:
  7. static Singleton* Instance();
  8. protected:
  9. Singleton();
  10. private:
  11. static Singleton* _instance;
  12. };


 


     
     
  1. //Singleton.cpp
  2. #include "Singleton.h"
  3. #include <iostream>
  4. using namespace std;
  5. Singleton* Singleton::_instance = 0;
  6. Singleton::Singleton()
  7. {
  8. cout<< "Singleton...."<< endl;
  9. }
  10. Singleton* Singleton::Instance()
  11. {
  12. if (_instance == 0)
  13. {
  14. _instance = new Singleton();
  15. }
  16. return _instance;
  17. }


 


     
     
  1. //main.cpp
  2. #include "Singleton.h"
  3. #include <iostream>
  4. using namespace std;
  5. int main(int argc,char* argv[])
  6. {
  7. Singleton* sgn = Singleton::Instance();
  8. return 0;
  9. }


上面三个模块是singleton模式的示例,因为里面涉及到了静态私有变量和静态全局函数,所以记录一下两处的用法特点

在main函数中,调用公有静态函数方式为:【类名】::【函数名】() ,写函数定义的时候,前面不要加static,这个我经常多写一个static,貌似受到c静态函数的影响。

静态变量要先初始化才能使用,在上面的代码中,初始化为:Singleton* Singleton::_instance = 0; 同样前面不能加static!有朋友说这样的私有成员,不在本类中同样能出现,访问权限就跟public一样了,我想说的是,私有静态变量也就在初始化的时候可以在外部出现,没有其它肯能的情况允许它出来放风了。

好了,关于c++中静态变量及其函数的使用大概就是这样,记录一下,以后忘了还得过来翻过,不过我不能忘记我记录过啊!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值