vc++6.0中动态数组实现(例如string类对象数组等)[文].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
VC++6.0 中动态数组实现 在 VC++6.0 中,动态数组实现是指在运行时动态地分配数组,而不是在编译时固定数组长度。这种实现方式可以让程序在执行时根据需要动态地分配数组长度。 动态数组实现的重要特点是: 1. 数组长度可以在运行时确定,而不是在编译时固定。 2. 动态分配的数组可以在自由存储区中创建和释放。 3. 动态数组可以使用 new 和 delete 表达式来实现。 动态数组的定义: 动态数组的定义需要指定类型和数组长度,但不需要为数组对象命名。例如: ```cpp int *pia = new int[10]; // array of 10 uninitialized ints ``` 这将分配一个含有 10 个 int 型元素的数组,并返回指向该数组第一个元素的指针。 初始化动态分配的数组: 动态分配数组时,如果数组元素具有类类型,将使用该类的默认构造函数实现初始化。如果数组元素是内置类型,则无初始化。例如: ```cpp string *psa = new string[10]; // array of 10 empty strings int *pia = new int[10]; // array of 10 uninitialized ints ``` 这两个 new 表达式都分配了含有 10 个对象的数组,其中第一个数组是 string 类型,第二个数组是 int 型。 也可以使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化。例如: ```cpp int *pia2 = new int[10](); // array of 10 initialized ints ``` 这将把数组元素都设置为 0。 const 对象的动态数组: 如果我们在自由存储区中创建的数组存储了内置类型的 const 对象,则必须为这个数组提供初始化。例如: ```cpp const int *pci_ok = new const int[100](); // ok: value-initialized const array ``` C++ 允许定义类类型的 const 数组,但该类类型必须提供默认构造函数。 允许动态分配空数组: 我们可以在运行时动态分配数组,而不需要在编译时知道数组的长度。例如: ```cpp size_t n = get_size(); // get_size returns number of elements needed int *p = new int[n]; for (int *q = p; q != p + n; ++q) /* process the array */; ``` 计算数组长度,然后创建和处理该数组。如果 get_size 返回 0,代码仍然正确执行。