如何将构造函数与数组一起使用?

Posted

技术标签:

【中文标题】如何将构造函数与数组一起使用?【英文标题】:How to use constructor with arrays? 【发布时间】:2018-04-29 15:27:56 【问题描述】:

您好,我想使用构造函数将参数传递给类。甚至可能吗? 现在我得到了这个声明:

flight *flight = new flight[random];

好吗?现在我如何调用 *flight 类的构造函数?我声明了这一点,所以我不能调用它说“两次声明”bla bla 的构造函数。 我不能喜欢吗:

flight fl;//assuming I have null constructor too
fl(5);//assuming it takes one argument only.

就没有办法吗?

不能

flight *flight = new flight[random];

同时启动构造函数?

【问题讨论】:

您的问题中的信息很少。我们可以肯定地说_no[i] 可能超出范围(如果i 是数组中的元素数)。我们需要Minimal, Complete, and Verifiable Example 才能为您提供更多帮助。另外,我建议你看看std::vectorstd::array,而不是使用指针或数组。 C++ 中的大多数数组问题都可以通过使用std::vector 来解决。 how to dynamically declare an array of objects with a constructor in c++的可能重复 【参考方案1】:

只能用默认构造函数(不带参数的构造函数)初始化所有元素:* flight=new flight[number]();

如果您希望每个对象分别用不同的值初始化,您需要将它们封装在具有构造函数中代码的新类(如FlightArray)中,或者在构造函数之后调用Init() 方法。

【讨论】:

你是对的;我调整了它。对不起。我想我不应该在喝第二杯咖啡之前回答问题。

以上是关于如何将构造函数与数组一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

C++对象数组与对象指针

将字符串的填充构造函数与初始化列表一起使用

C++:使用迭代器构造一个二维动态分配的数组

如何使用 Xamarin 和 Autofac 将构造函数依赖项注入 ViewModel?

将 make_shared 与受保护的构造函数 + 抽象接口一起使用

使用构造函数将数组传递给对象后,值已更改(在 c++ 中)。我想不通为啥