#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访问,因为这个对象内部并没有为它分配存储空间,而是在全局的变量存储区。
来自为知笔记(Wiz)
转载于:https://www.cnblogs.com/yml435/p/4656535.html
相关资源:数据结构—成绩单生成器