2016-11-11 49 views
-3

我试图创建对象的BuyOrder创建对象的数组,没有匹配的构造函数初始化

BuyOrder buy[10]; 

为什么我收到错误的数组的错误说“BuyOrder [10]无匹配的构造函数初始化”?

以下是BuyOrder的构造函数。我是否必须创建另一个默认构造函数?

BuyOrder::BuyOrder(double price, int quantity, Stock &s) 
    :buyPrice{ price }, 
    buyQuantity{quantity}, 
    buyStock{ s } 
    {} 
+1

这不是默认构造函数。默认的构造函数不带任何参数。 –

+1

您可以尝试创建一个[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)并向我们展示? –

+0

@MichaelAlbers所以你的意思是我只能声明一个对象的数组,其中的对象有默认的构造函数? –

回答

0

就像我在我的评论中说过的,你can做聚合初始化小数组。

#include <array> 

struct example 
{ 
    example(int, double) {} 
    example(example const&) = delete; 
}; 

int main() { 

    example arr1[2] { 
     {1, 3.4}, 
     {2, 5.6} 
    }; 

    std::array<example, 2> arr2 {{ 
     {1, 3.4}, 
     {2, 5.6} 
    }}; 

    return 0; 
} 
相关问题