构造函数中的静态变量
#ifndef SELF_SUM_H
#define SELF_SUM_H
#include<iostream>
unsignedintSum_solution1(int n_value);
classSumDefaultConstruct{
private:
staticunsignedint countN;
staticunsignedint sumN;
public:
SumDefaultConstruct(){
countN++;
sumN+=countN;
}
staticvoid reSet(){
countN=0;
sumN=0;
}
staticunsignedint getSum(){
return sumN;
}
};
unsignedintSumDefaultConstruct::countN=0;
unsignedintSumDefaultConstruct::sumN=0;
unsignedintSum_solution1(int n_value){
if(n_value==0){
return0;
}
SumDefaultConstruct::reSet();
SumDefaultConstruct*ptr=newSumDefaultConstruct[n_value];
delete[] ptr;
ptr=NULL;
returnSumDefaultConstruct::getSum();
}
#endif
unsignedintSumDefaultConstruct::countN=0;
unsignedintSumDefaultConstruct::sumN=0;
以前是怱略了这两句,对于C++,一段时间不编就忘了。
在C++中的静态变量只是声明了,但是没有定义。还没有分配存储空间,静态变量一般和全局变量的空间差不多。
那么我们需要在类外部定义或初使化这两个静态变量,也就是分配空间啰。
因为静态变量是属于所有对象的。所心也不可以用this访问,因为这个对象内部并没有为它分配存储空间,而是在全局的变量存储区。