http://zhedahht.blog.163.com/blog/static/2541117420072915131422/
这里涉及到了类的静态成员与静态函数,要注意下面几个点:
1. 静态类成员必须初始化,并且要在主函数调用之前。
2. 静态类成员是属于类的,而不是属于某一个对象,可以在类的范围内共享。
3. 静态类成员函数没有this指针,因此只能访问静态类成员变量。
#include <iostream> using namespace std; class CGetSum { public: CGetSum() { ++N; sum += N; } static void reset() { N = 0; sum = 0; } static int getsum() { return sum; } private: static int N; static int sum; }; int CGetSum::N = 0; int CGetSum::sum = 0; int main() { int n; cin >> n; CGetSum::reset(); CGetSum *p = new CGetSum[n]; delete []p; cout << CGetSum::getsum() << endl; return 0; }
另外一种比较简洁的做法:
int getsum(int i) { int r = 0; i && (r = i + getsum(i-1)); return r; }