我有一个以字符串为成员的类。我的代码在构造函数的主体中成功为其分配了一个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)
{}
答案 0 :(得分:1)
如果您参考这样的参考文献:http://www.cplusplus.com/reference/string/string/string/
您将看到不存在采用单个char的std :: string构造函数。但是,有一个构造函数需要一个count和一个char,因此您可以执行以下操作:
A::A(char character)
: str(1, character)