看看这段代码
struct S{ int i; int j;};
int main()
{
assert(S().i == S().j) // is it guaranteed ?
}
为什么?
最佳答案
is it guaranteed ?
是的,这是有保证的。 S().i
和 S().j
的值将为 0
。 ()
表示 value initialization. (这意味着 i
和 j
将被零初始化,因为 S
是一个没有用户定义的默认构造函数的类)
关于c++ - 临时对象混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378785/