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

Default value for char in a constructor in C++

本文关键字:默认值 char 构造函数 c++      更新时间:2023-10-16

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

改为

Question(int id=0, const std::string& text="",char correctAnswer='a')

'a'是一个单字符。

双引号总是创建数组。

"Hello"是一个大小为6的数组。

"a"是一个大小为2的数组。

额外的1用于空终止符(0或'')

Question(int id=0, const std::string& text="",
                            char correctAnswer='a')
//                                              ^^ Use single Quote for a char
        id(id),text(text),correctAnswer(correctAnswer) 
{
}