CPP学习之——指针数组(14.24)

一 概述

通常的情况下,我们都明白我们的程序需要几个对象来实现,因此当我们声明一个数组对象并确定对象数量的时候,编译器会根据我们声明的对象数量来留出空间。但是有的时候我们也不能精确地判断程序需要使用几个对象,那么我们就需要更高级的数据结构了。

二 数据存储

前面我们所讲的数组都是存放在栈中,一般来说栈的内存都是有限的,但是堆的内存很大。这样为了避免栈的内存开销,我们可以在堆中存放数据,比如说我们把整个对象都存放在堆中

三 示例演示及结果输出

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;
}