VS2008 C++编译器错误?

Non*_*biz 2 c++ constructor initialization variable-assignment

这个编译:-)

string name;
name = 1;
Run Code Online (Sandbox Code Playgroud)

这不是:

string name = 1;
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

我知道这是错的...这不是重点.第一个给人一个笑脸.

Rob*_*rtL 14

第一个编译是因为赋值赋值运算符被称为"string&operator =(char c)"的一个签名,编译器可以将1转换为char.

第二个不会编译,因为它调用没有兼容签名的复制构造函数.