std::set
作为参数。
如何初始化构造函数参数中的集合?
下面是一个简单的概念性示例。实际实现要大得多。
#include <set>
enum class Fruits
{
APPLE, PEACH, BANANA, STRAWBERRY, LEMON
};
class Pie
{
public:
Pie(const std::set<Fruits>& flavors)
: m_flavors(flavors)
{
}
std::set<Fruits> m_flavors;
};
int main()
{
Pie p(std::set<Fruits> {Fruits::APPLE, Fruits::BANANA});
return 0;
}
目标是能够指定
set
在伪代码中:
Pie p({Fruits::APPLE, Fruits::BANANA});
上述情况将产生通过
标准::集
APPLE, BANANA
,给
class Pie
.
此概念将在以下代码段中使用:
class Fruit_Pie
: public Pie
{
Fruit_Pie()
: Pie()
{ ; }
};
在上面的代码段中,创建
std::set<Fruits>
在调用构造函数之前是不实际的。如果有一个方法可以做到这一点,我是开放的。
搜索internet得到了有关初始化
标准::集
作为单独的语句,而不是参数初始化。
unsigned int
按位或初始值设定项列表中的值。我正在“升级”以使用
标准::集
.
环境:
编译器:Visual Studio 2017
平台:Windows 10和Windows 7