**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
去年关闭。
Improve this question
erghdfshfdggggggggghedsfgeeeeeeeeeeeeeeeeeertwer
**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
去年关闭。
Improve this question
erghdfshfdggggggggghedsfgeeeeeeeeeeeeeeeeeertwer
3条答案
按热度按时间webghufk1#
字符串字面量是
const char[]
数组,所以你需要更新你的cMan()
构造函数,以接受const char*
指针而不是char*
指针。或者,使用std::string
。vdzxcuhz2#
问题是
const
。尝试使用
const char *
而不是char *
ao218c7q3#
您正在调用构造函数
向其传递字符串文字。
在C++中,与C相反,字符串字面量具有常量字符数组的类型。用作参数表达式,它们隐式转换为指向其第一个字符的指针,类型为
const char *
因此,如果您打算使用字符串文字作为构造函数的参数,那么将其声明为
请注意在此声明中使用的字符串文字
具有比类中相应的初始化数据成员更多的字符。
如果要传递的字符串文字的长度小于声明为数据成员的数组的大小,则此循环
可能是尝试使用数据成员时出现未定义行为的原因。
因此,为了避免未定义的行为,最好将字符串存储在数据成员中。您可以将数据成员声明为
std::string
类型,而不是char[5]
类型。