以下代码:
#include <iostream>
using namespace std;
struct A {
A(int a) { cout << "cast "; }
A(const A& a) { cout << "copy " ;}
};
int main () {
int x = 0;
A a = x;
return 0;
}
给出输出cast
,而我预计输出是:cast copy
。是编译器优化,还是对正在发生的事情的简单误解?
提前致谢!