【发布时间】:2011-09-11 04:29:54
【问题描述】:
假设我有以下结构:
struct sampleData
{
int x;
int y;
};
而在使用时,我想将sampleData类型的变量初始化为已知状态。
sampleData sample = { 1, 2 }
后来,我决定需要将额外的数据存储在我的sampleData 结构中,如下所示:
struct sampleData
{
int x;
int y;
int z;
};
据我了解,从我的 pre-z 数据结构中遗留下来的两个字段初始化仍然是一个有效的语句,并将被编译,用默认值填充缺失的字段。
这种理解正确吗?我最近一直在 Ada 工作,它也允许聚合初始化,但会将类似的问题标记为编译错误。假设我对上面 C++ 代码的假设是正确的,是否有一种语言结构可以将缺少的初始化值识别为错误?
【问题讨论】:
标签: c++ ada aggregate-initialization