#include <iostream>
using namespace std;
class Temp
{
public:
//构造
Temp()
{
++N;
Sum += N;
}
//重置
static void Reset()
{
N = 0;
Sum = 0;
}
//返回和
static int GetSum()
{
return Sum;
}
private:
static int N;
static int Sum;
};
int Temp::N = 0;
int Temp::Sum = 0;
int sum(int n)
{
Temp::Reset();
Temp *a = new Temp[n];
delete []a;
a = NULL;
return Temp::GetSum();
}
void main()
{
cout << sum(10) <<endl;
}
限制:不能用乘除法,不能用for,while,if,switch,case,不能用条件表达式。。。。
这个方法利用了new关键字自动调用构造函数,从而可以把求和运算放到构造函数中进行,并且利用静态成员变量属于一个类,而不属于某个对象,在每次调用构造函数都累加