class Sum
{
public:
    Sum()
    {
        sum += i;       //每一次调用都会和之前的相加起来,因为两个变量被static修饰了,
        ++i;
    }
    static void Init()
    {
        i = 1;
        sum = 0;
    }
    static int GetSum()
    {
        return sum;
    }
private:
    static int i;         //static修饰后,在静态去了,是属于整个类的了不是输入某一个对象
    static int sum;       //static修饰后,在静态去了,是属于整个类的了不是输入某一个对象
};

int Sum::i = 1;
int Sum::sum = 0;


class Solution {
public:
    int Sum_Solution(int n) {
        Sum::Init();                //为了保证每一组数据测完之后,值回到开始前
        Sum a[n];                    //数据有多少个,就调用多少次默认构造函数
        return Sum::GetSum();       //
    }
};

思路:主要是利用static特性和构造函数,定义一个Sum类出来,在里面完成1~200的求和,初始化(还原),返回相加后的值等操作。

1.Sum中出来把i和sum都用static 修饰,然后i和sum就是属于整个类了,不是属于某一个对象,a[n]代表有多个数据,要多次调用 构造函数,就会使用上次构造函数的i和sum,不会还原成 i= 1,sum = 0;

2.Sum a[n]表示一组数据有多少个 如:a[5],就说明这一组数据有5个 //0,1, 2, 3, 4

3.Init函数是为了下一组数据做准准备,还原最开始的值i = 1, sum = 0;