我有一个字符串作为成员的类。我的代码在构造函数的主体中成功地为它分配了一个char
。
但是,当我尝试使用初始化列表时,它显示了一个令人困惑的错误:“没有构造函数的实例”std :: basic_string <_Elem,_ Traits,_Alloc> :: basic_string [with _Elem = char,_Traits = std :: char_traits,_Alloc = std :: allocator]“匹配参数列表”。唉,我不确定我的主题中的假设是真是假。
这是我的实验代码:
class A
{
string str;
public:
A(char character);
};
A::A(char character): str(character)
{}
如果你参考这样的参考:http://www.cplusplus.com/reference/string/string/string/
您将看到没有std :: string构造函数,它只需要一个char。但是,有一个构造函数,它接受count和char,所以你可以这样做:
A::A(char character)
: str(1, character)