一 概述
通常的情况下,我们都明白我们的程序需要几个对象来实现,因此当我们声明一个数组对象并确定对象数量的时候,编译器会根据我们声明的对象数量来留出空间。但是有的时候我们也不能精确地判断程序需要使用几个对象,那么我们就需要更高级的数据结构了。
二 数据存储
前面我们所讲的数组都是存放在栈中,一般来说栈的内存都是有限的,但是堆的内存很大。这样为了避免栈的内存开销,我们可以在堆中存放数据,比如说我们把整个对象都存放在堆中
三 示例演示及结果输出
3.1 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #include<iostream> using namespace std; class area { private: int length, width; public: area(int l, int w) { length = l, width = w; cout << "调用构造函数设置长和宽的值," << "长:" << length << "宽:" << width << endl; } ~area() { cout << "调用析构函数释放内存," << "长:" << length << "宽:" << width << endl; } void set(int l, int w) { length = l; width = w; } int get() {return length * width;} }; using namespace std; int main() { area *one[10000]; for (int i = 0; i < 10000; i++) { //area *one=new area(4,5*i); one[i] = new area(4, 5 * i); } cout << "area[" << 1 << "]" << one[1]->get() << endl; //delete one; return 0; }
|