【发布时间】:2019-08-29 19:12:29
【问题描述】:
假设你有一个这样的结构:
struct Foo {
int a;
};
目前我正在这样初始化它:
Foo foo = {1};
现在,如果我添加另一个成员:
struct Foo {
int a;
int b;
}
代码仍然可以编译,编译器认为初始化完全没问题。但是我希望编译器在向结构添加新成员时产生错误。有可能吗?
【问题讨论】:
-
您需要保留
Foo的聚合吗? -
@NathanOliver Ehhm,抱歉,聚合是什么意思?我学习 c++ 才 3 天...
-
在 C++ 中,
struct和class几乎是一回事。有什么理由不使用构造函数?当构造函数的签名发生更改时,编译器将针对所有未更改的用途抛出您想要的错误。 -
基本上它意味着像你所拥有的类。一个没有任何构造函数的。
-
@Romen 是的,我知道构造函数,但我不想添加它们。我想要的只是添加一个成员并查看错误,没有构造函数(您还必须维护)。
标签: c++ struct initialization