考虑以下C ++类的构造函数。它给了我错误:
类型'char'的参数的默认参数的类型为'const char [2]'
请一些建议。如果我可以在correctAnswer
设置""
的默认构造函数(无),我会很高兴。
#include <string>
#include <iostream>
class Question{
int id;
std::string text;
char correctAnswer;
public:
Question(int id=0, const std::string& text="", char correctAnswer="a") : // here is the error
id(id),text(text),correctAnswer(correctAnswer) {
}
}
答案 0 :(得分:3)
将其更改为
Question(int id=0, const std::string& text="",char correctAnswer='a')
'a'
是一个字符。
双引号始终会创建一个数组。
“Hello”是一个大小为6的数组。
“a”是一个大小为2的数组。
额外的1用于空终止符(0或'\ 0')
答案 1 :(得分:1)
Question(int id=0, const std::string& text="",
char correctAnswer='a')
// ^^ Use single Quote for a char
id(id),text(text),correctAnswer(correctAnswer)
{
}