【发布时间】:2017-04-18 03:42:10
【问题描述】:
我在测试我的类时遇到问题,因为其中一个测试用例给了我一个包含 6 个值的数组,而我的函数似乎没有捕捉到它。我怎样才能修改它们以便它们工作? 测试用例:
case 2:{
BiStack<long> b{1,2,3,4,5,6};
cout << b.capacity() << endl;
cout << b.size() << endl;
cout << b.max() << endl;
break;
这些是我的头文件中的函数:
BiStack() = default;
BiStack(size_t init, size_t max);
BiStack(initializer_list<ElementT>, size_t max);
它给了我这个错误:
error: no matching function for call to 'BiStack<long int>::BiStack(<brace-enclosed initializer list>)'
BiStack<long> b{1,2,3,4,5,6};
我不知道这是否足够的信息,但我感谢您的帮助!
【问题讨论】:
-
具有初始化列表的构造函数需要 2 个参数。您没有指定 'max' 参数的值。试试 BiStack
b{{1,2,3,4,5,6}, 6}; -
如果无法修改测试用例,那我可以在另一端更改什么?
-
如果你想做 BiStack
b{1,2,3,4,5,6},你需要有一个带单个参数的 BitStack 构造函数:BiStack(initializer_list );
标签: c++ class constructor