初始化列表是否只接受具有相同类型值的初始化变量?

时间:2018-10-20 03:20:35

标签: c++

我有一个以字符串为成员的类。我的代码在构造函数的主体中成功为其分配了一个char

但是,当我尝试使用初始化程序列表时,它显示了一个令人困惑的错误:“没有构造函数实例” std :: basic_string <_Elem,_Traits,_Alloc> :: basic_string [with _Elem = char,_Traits = std :: char_traits ,_Alloc = std :: allocator]“匹配参数列表”。 las,我不确定主题中的假设是对还是错。

这是我的实验代码:

class A
{
    string str;
public:
    A(char character);
};

A::A(char character): str(character)
{}

1 个答案:

答案 0 :(得分:1)

如果您参考这样的参考文献:http://www.cplusplus.com/reference/string/string/string/

您将看到不存在采用单个char的std :: string构造函数。但是,有一个构造函数需要一个count和一个char,因此您可以执行以下操作:

A::A(char character)
    : str(1, character)