构造函数中的静态变量
#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访问,因为这个对象内部并没有为它分配存储空间,而是在全局的变量存储区。
浙公网安备 33010602011771号