我正在参加 C++ 初学者的远程课程,但无法解决此编译错误。它的编写方式与示例书中完全相同,当我兄弟将其剪切并粘贴到他的 VS2015 中时,它工作正常,但在我的 VS2017 中却不行。
我已经卸载并重新安装VS2017社区无济于事。
我只编码了两周,所以我对此非常非常陌生。
我得到的错误代码是:
Error E0167“const char”类型的参数与“char”类型的参数不兼容
Error C2664'void Hello(char )': 无法将参数 1 从 'const char [8]' 转换为 'char '
代码:
// FUNCTION: Hello, prints out a welcome message on the screen.
void Hello(char* name)
{
cout << "Hello " << name << "!";
}
// FUNCTION: Main, program start.
int main()
{
Hello("Krister");
cin.get();
return 0;
}
我真的希望有人能帮助我解决这个问题。
一切顺利,
杰普
字符串文字可以通过const char*
.
它可能不会被引用char*
;这在旧版本的 C 中是可能的,并且一些旧的 C++ 编译器允许这样做,但会发出警告。在现代,这是完全禁止的。
通过传递"Krister"
到一个函数char*
,您要求编译器尝试将一种转换为另一种;由于上述规则,它失败了,如错误消息所示。
Chuck a const
在那里取得巨大的成功。
如果该代码来自教科书,lose it. 这是一份优秀的 C++ 书籍列表.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)