如下,该题如何使用多文件结构实现?

设计一个名为IntStack的栈类,用于存储整数。栈以“后进先出”的方式存取元素。这个类应该包含:

(1)名为element的数据成员,保存栈中的int值;element的类型可以使用vector或在堆上分配的动态数组。

(2) 名为size的数据成员,保存栈中元素的个数。

(3)默认构造函数,用默认的栈容量值初始化IntStack对象。

(4) 进栈操作void push(int value), 将value 加入栈中;一旦栈中的元素个数超出了当前容量,就将栈的容量翻倍。

(5) 出栈操作int pop(),删除栈顶的元素并将其返回;pop操作不改变栈的容量。

(6) 判断栈是否为空的操作bool empty(),如果栈为空,返回true。

(7)成员函数size_t getSize(),返回栈中元素的个数。

(8) 根据(1)中选择的数据结构,设计需要的拷贝控制成员。
编写测试程序,利用IntStack将输入的整数序列逆向输出。

编写3个文件
intstack.h文件,放类的定义
intstack.cpp,放类的实现代码
program.cpp,写main函数,调用