gpt4 book ai didi

c++ - 没有初始化的类中的数组

转载 作者:行者123 更新时间:2023-11-30 04:19:29 25 4
gpt4 key购买 nike

我一直在为这个问题苦苦挣扎。在 C++ 中,在类 A 中创建的类 B 的数组必须由默认构造函数初始化,这似乎是非常低效的。有什么办法可以避免这种行为吗?我实现人员登记。如果我使用计数引用创建它,我会得到很多默认构造函数调用,而且它似乎没有应有的效果。我还必须创建不必要的默认构造函数。

最佳答案

当您创建对象数组时,无论是静态数组(Person people[1000])还是动态分配的(Person* people = new Person[1000] >),所有 1000 个对象都将使用默认构造函数创建和初始化。

如果你想为对象创建空间,但还没有创建它们,你可以使用像std::vector 这样的容器。 (实现动态大小的数组),或使用指针数组,如 Person* people[1000]Person** people = new Person*[1000] -在这种情况下,您可以使用NULL 初始化所有项目以指示空记录,然后一个一个地分配对象:people[i] = new Person(/* constructor arguments here */) ,但您还必须记住单独删除每个对象。

关于c++ - 没有初始化的类中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com