c++ - VS2008 C++ 编译器错误?

标签 c++ constructor initialization variable-assignment

这个编译:-)

string name;
name = 1;

这不是:

string name = 1;

有什么想法吗?

我知道这是错误的。 . .那不是重点。第一个给出笑脸。

最佳答案

第一个编译是因为赋值运算符被称为具有一个签名“string& operator= ( char c )”并且编译器可以将 1 转换为 char。

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

关于c++ - VS2008 C++ 编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1359172/

相关文章:

c++ - C++ VS2010中3n+1溢出的解决方法

c++ - 用递归区分偶数和奇数

c# - 具有必填字段的C#类

c++ - 为什么单独初始化一个新变量是有效的?

c++ - 在C++中,构造时用 'this'指针初始化一个类成员

c++ - 在函数中打开文件并在 main 中使用它

c++ - 泄漏的内存是否会在 C/C++ 程序运行期间始终丢失?

javascript - 作为对象属性调用函数时如何引用构造函数方法

c# - 有没有办法在 C# 中获取 F# 的构造函数参数是自动不可变私有(private)成员功能?

c++ - 将 '\0' 放入数组最后一个元素之后的 char[] 是否安全?