c++ - 使用两个不同的构造函数初始化指向数组的指针

标签 c++ arrays pointers constructor initialization

我有一个程序,我想在其中使用指针初始化一个类对象数组。

class xyz{};
cin>>M;

xyz *a=new xyz[M];   //this will call the constructor for each object.

问题是我在 xyz 类中有两个构造函数。我想使用其他构造函数初始化最后两个元素,而不是没有参数的默认构造函数。 我该怎么做?

我希望第 M+1 和第 M+2 项由接受参数的不同构造函数初始化。

最佳答案

std::vector<xyz> a(M-2);
a.push_back(xyz(...));     // xyz(...) here is a call to the
a.push_back(xyz(...));     // constructor you want to use

此代码假设 M >= 2。当然,这不是一个安全的假设,您必须决定如何处理不符合条件的情况。

关于c++ - 使用两个不同的构造函数初始化指向数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18881645/

相关文章:

c++ - 性能差异:std::accumulate vs std::inner_product vs Loop

c++ - 托管 C++ Web 引用 WCF 服务问题

c++ - 如何解决不符合 Visual C++ 标准的问题?

java - 将长整型数转换为字节数组

c++ - 如何在给定 if 条件的情况下删除整数数组中的特定元素?

const 指针契约(Contract)只是热空气?

c++ - 如何在多个函数中使用结构

php - PHP 的 array() 的缩写

c - int 指针不会返回,触发 SIGABRT

c++ - 比较两个constexpr指针不是constexpr吗?