题目来源“数据结构与算法面试题80道”。
问题分析:可以使用类的构造方法,在类的每次实例化对象时都会调用构造方法,那么只需要实例化n个对象,就会调用n次构造方法,这就模拟了循环的过程,此时,只需要有一个全局变量记录累加的值即可。
方法:
#include <stdio.h>
class calnum{
public:
calnum(){
n ++;
sum += n;
}
~calnum(){}
int get_num(){
return sum;
}
private:
static int sum;
static int n;
};
int calnum::sum = 0;
int calnum::n = 0;
int main(){
// 声明n个对象
calnum *sum = new calnum[100];
printf("%d\n", sum->get_num());
delete[] sum;
return 1;
}