利用类的静态成员变量以及类的构造函数实现。
代码:
#include <iostream>
using namespace std;
class A
{
public:
A();
~A(){};
static int getSum();
private:
static int n;
static int sum;
};
int A::n = 0;
int A::sum = 0;
A::A()
{
n++;
sum += n;
}
int A::getSum()
{
return sum;
}
int main()
{
A *pa = new A[100];
delete [] pa;
cout<<A::getSum()<<endl;
getchar();
}
利用模板元编程:
#include <iostream>
template<unsigned int N>
struct A
{
enum
{
value = A<N-1>::value + N
};
};
template<>
struct A<1>
{
enum
{
value = 1
};
};
int main()
{
std::cout<<A<100>::value<<std::endl;
getchar();
return 0;
}
REF:
1,http://bbs.csdn.net/topics/290013313