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

标签 c++

考虑以下类 i C++ 的构造函数。它给了我错误:

default argument for parameter of type ‘char’ has type ‘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 或 '\0')

关于c++ - C++构造函数中char的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107699/

相关文章:

c++ - 使用 sockaddr_un 调用 connect(2) 时出现编译器错误

c++ - const char * 与 const wchar_t* (串联)

c++ - CORBA : How to pass a QT object as a parameter

c++ - 我的程序只输出最高元素 1

c++ - 将二进制十六进制数据转换为等效的 ASCII 并存储在字符串中

c++ - 在 C++ 中读取可变长度的用户输入

C++11 元编程 : check for method existence

c++ - 打包 Linux 软件,同时保持合理的文件结构

c++ - 内部模板类型 std::vector<std::vector<T>> 的函数模板重载或专门化

C++ 如何求解非常大的稀疏线性系统