La liste initialiseur accepte que l'initialisation des variables avec des valeurs du même type?

voix
0

J'ai une classe avec une chaîne en tant que membre. Mon code attribué avec succès charà elle dans le corps du constructeur.

Cependant, quand j'ai essayé d'utiliser la liste des initialiseur, il a montré une erreur de confusion: aucune instance de constructeur std :: basic_string <_Elem, _Traits, _Alloc> :: basic_string [avec _Elem = char, _Traits = std :: char_traits, _Alloc = std :: allocateur] « correspond à la liste des arguments ». Hélas, je ne suis pas sûr que mon hypothèse, qui est dans le sujet, est vrai ou faux.

Ceci est mon code d'expérience:

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

A::A(char character): str(character)
{}
Créé 20/10/2018 à 03:20
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Si vous consultez une référence comme celui - ci: http://www.cplusplus.com/reference/string/string/string/

Vous verrez qu'il n'y a pas std :: constructeur de chaîne qui prend un seul omble chevalier. Il y a, cependant, un constructeur qui prend un compte et un char, de sorte que vous pouvez faire ceci:

A::A(char character)
    : str(1, character)
Créé 20/10/2018 à 05:22
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more