【发布时间】:2017-08-31 05:46:34
【问题描述】:
这是关于这个的第 n 个问题,但我找不到完全相同的重复...
假设如下代码:
#include <iostream>
struct S {
int x;
int y;
};
class C {
public:
S s;
C() : s{123, s.x} {}
};
int main() {
std::cout << C().s.y << '\n';
}
这样初始化s.y可以吗? (只有 JetBrains 的 ReSharper 通过以下方式抱怨它:Object member this->s.x might not be initialized)。
如果有人用标准的引用来确认他们的答案,那就太好了。
【问题讨论】:
-
我知道反对这种事情的closest rule 不适用于这里,因为
S是微不足道的。同样,this rule 似乎对你有利。
标签: c++ aggregate-initialization