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

问题描述 投票:0回答:1

我有一个字符串作为成员的类。我的代码在构造函数的主体中成功地为它分配了一个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)
{}
c++
1个回答
1
投票

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

您将看到没有std :: string构造函数,它只需要一个char。但是,有一个构造函数,它接受count和char,所以你可以这样做:

A::A(char character)
    : str(1, character)
© www.soinside.com 2019 - 2024. All rights reserved.