我在QT C ++上编写toString函数时遇到问题。
例如,我在头文件QString toString(QString delimiter =“:”)中有这个;我收到以下错误
错误:'QString'类型参数的默认参数类型为'const char [3]'
otpional参数适用于其他类型,但似乎编译器将“:”解释为类型char并因此给我以下错误(我认为字符使用'',结果我错了)。
我搜索了这些东西,但找不到任何无用的东西,我很漂亮,必须有一个简单的解决方法,但我是这个语言的新手。谢谢
答案 0 :(得分:1)
编译器错误表示参数类型为 QString
,但您给出的默认值是const char[3]
类型(一个const字符数组),因为它是一个字符串文字。 QString
确实有一个构造函数,它接受const char*
(并记住数组衰减到指针),所以通常它能够执行从const char*
到QString
的隐式转换。似乎构造函数已声明为explicit
,因此必须明确调用它。
编辑:它不明确,只需要包含标题:)