构造函数中的静态变量

  1. #ifndef SELF_SUM_H
  2. #define SELF_SUM_H
  3. #include<iostream>
  4. unsignedintSum_solution1(int n_value);
  5. classSumDefaultConstruct{
  6. private:
  7. staticunsignedint countN;
  8. staticunsignedint sumN;
  9. public:
  10. SumDefaultConstruct(){
  11. countN++;
  12. sumN+=countN;
  13. }
  14. staticvoid reSet(){
  15. countN=0;
  16. sumN=0;
  17. }
  18. staticunsignedint getSum(){
  19. return sumN;
  20. }
  21. };
  22. unsignedintSumDefaultConstruct::countN=0;
  23. unsignedintSumDefaultConstruct::sumN=0;
  24. unsignedintSum_solution1(int n_value){
  25. if(n_value==0){
  26. return0;
  27. }
  28. SumDefaultConstruct::reSet();
  29. SumDefaultConstruct*ptr=newSumDefaultConstruct[n_value];
  30. delete[] ptr;
  31. ptr=NULL;
  32. returnSumDefaultConstruct::getSum();
  33. }
  34. #endif
  1. unsignedintSumDefaultConstruct::countN=0;
  2. unsignedintSumDefaultConstruct::sumN=0;
以前是怱略了这两句,对于C++,一段时间不编就忘了。
在C++中的静态变量只是声明了,但是没有定义。还没有分配存储空间,静态变量一般和全局变量的空间差不多。
那么我们需要在类外部定义或初使化这两个静态变量,也就是分配空间啰。
因为静态变量是属于所有对象的。所心也不可以用this访问,因为这个对象内部并没有为它分配存储空间,而是在全局的变量存储区。





转载于:https://www.cnblogs.com/yml435/p/4656535.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值