对象数组:
定义类时,仅定义对象的规范;没有分配内存或存储空间。要使用该类中定义的数据和访问功能,您需要创建对象。
句法:
使用参数化构造函数初始化对象数组的不同方法:
1.使用malloc():为避免调用非参数化构造函数,请使用malloc()方法。C ++中的“ malloc”或“内存分配”方法用于动态分配具有指定大小的单个大内存块。它返回类型为void的指针,该指针可以转换为任何形式的指针。
输出:
2.使用new关键字:new运算符表示在堆上分配内存的请求。如果有足够的内存可用,则new运算符将初始化内存,并将新分配和初始化的内存的地址返回给指针变量。这里,pointer-variable是data-type类型的指针。数据类型可以是任何内置数据类型,包括数组,也可以是任何用户定义的数据类型,包括结构和类。
对于动态初始化,如果我们添加参数化构造函数,则new关键字需要非参数化构造函数。因此,我们将使用一个虚拟构造函数
输出:
如果我们不使用虚拟构造函数,编译器将显示以下错误
编译器错误:
3.使用双指针(指向指针概念的指针):指向指针的指针是多种间接形式或一系列指针。通常,指针包含变量的地址。当我们定义指向指针的指针时,第一个指针包含第二个指针的地址,该地址指向包含实际值的位置,如下所示。
在这里,我们可以分配许多要分配的块,因此对于每个索引,我们必须使用new关键字调用参数化构造函数进行初始化。
输出:
4.使用Vector的类型:Vector是标准模板库中功能最强大的元素之一,可以轻松高效地编写与静态或动态数组相关的任何复杂代码。它采用一个可以是任何类型的参数,因此我们将Class用作向量的类型,并在循环的每次迭代中推送对象。
向量与动态数组相同,具有在插入或删除元素时自动调整大小的能力,并且容器自动处理其存储。矢量元素放置在连续的存储中,以便可以使用迭代器对其进行访问和遍历。在向量中,数据插入到最后。
输出:
领取专属 10元无门槛券
私享最新 技术干货