抱歉,没有具体说明,但是...
假设我有这个结构:
struct OptionData
{
Desc desc;
bool boolValue;
std::string stringValue;
int intValue;
double numberValue;
};
我正在使用这种方式:
OptionData isWritePatchesOptionData = {isWritePatchesDesc, {}, {}, {}, {}};
由于我有很多选择,所以我想做。像这样:
<type_here> OptionDataList = {{}, {}, {}, {}};
所以我可以做:
OptionData isSeamCutOptionData = {isSeamCutDesc, OptionDataList};
但是真的当场我无法弄清楚是哪种类型...
也许这种形式是不可能的...我的意思是,没有在OptionData结构中创建OptionDataList对象...但这显然是多余的...
最佳答案
只需提供默认的初始化程序即可。使用
struct OptionData
{
Desc desc{};
bool boolValue{};
std::string stringValue{};
int intValue{};
double numberValue{};
};
结构中的所有内容都将进行值初始化,这意味着具有构造函数的对象将被默认构造,而没有构造函数的对象将被零初始化。
这让你写
OptionData isWritePatchesOptionData = {isWritePatchesDesc}; // same as using {isWritePatchesDesc, {}, {}, {}, {}};
// and
OptionData isSeamCutOptionData = {isSeamCutDesc};
现在所有其他成员都处于默认/零状态。
关于c++ - 如何初始化此结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60600986/