只是一个有启发性的面试问题:“这个 C++14 程序打印什么?”
#include <iostream>
struct A { int i; };
struct B {
A a{1};
operator int() { return a.i; }
};
int main() {
B x({});
B y{{}};
std::cout << x << y;
}
Run Code Online (Sandbox Code Playgroud)
它实际上打印了10,这意味着定义中的大括号y改变了它的初始值。但是如何?
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |