C ++中构造函数中char的默认值

时间:2014-06-08 15:28:41

标签: c++

考虑以下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) {
    }
}

2 个答案:

答案 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) 
{

}