【发布时间】:2018-04-10 21:10:54
【问题描述】:
在此示例中,来自 Robert Lafore 的 C++ 书籍,但作者没有使用 const 关键字,但尝试在 Visual Studio 2017 中执行相同的代码会出现下面列出的错误。我不确定作者是否在这里犯了错误。最终,添加一个 const 关键字为我解决了这个问题。
如果有帮助,请查看以下错误: 1- E0415 不存在合适的构造函数来将“const char [5]”转换为“String”
2- 'initializing': 无法从 'const char [5]' 转换为 'String'
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
class String {
/*
.
.
.
*/
String(const char s[]) { //Please note that actually there is no const keyword in the book. I've just put it in there.
strcpy_s(str, s);
}
/*
.
.
.
*/
};
int main() {
String s1 = "hey";
}
为什么我必须使用 const 以及为什么作者省略了该 const(这是故意的还是在他写这本书的时候还可以?)?
【问题讨论】:
-
请给自己一个更好的book。如果您使用的是我在亚马逊上找到的那个,它是在 1996 年发布的,当时 C++ 甚至还没有标准化,而且比“现代”C++ 早得多。
-
我的书出版于 2006-2009 年左右。
-
“给出一些错误”也不是很有帮助的报告
-
书名是什么?
-
C++ 中的面向对象编程(第 4 版)。
标签: c++ constructor constants