bedeutet eine implizite Umwandlung wie ist erlaubt. Es ist das Äquivalent, etwas wie Wenn Sie die Konstruktion der impliziten Konvertierung nicht zulassen wollten, markieren Sie den Konstruktor als std::string
hat einen -Konstruktor, der die implizite Konvertierung von const char*
. explicit
:
Siehe Zeichenkettenkonstruktor . Der Konstruktor stellt die Konvertierung für den Schlüssel in Ihrer Map bereit. Es ist äquivalent zu
%Vor% Wenn Sie in C ++ einen Klassenkonstruktor erstellen, der nur einen Parameter akzeptiert, dann (wenn Sie es nicht mit explicit
anders angeben), wird der Typ dieses Parameters implizit konvertierbar in Ihre Klasse.
std::string
hat einen solchen Konstruktor für char *
Ja, dies kann gelegentlich zu unerwartetem Verhalten führen. Aus diesem Grund sollten Sie explicit
normalerweise für Konstruktoren mit einem einzigen Parameter verwenden, es sei denn, Sie möchten diese stillen Konvertierungen wirklich.
Tags und Links c++ type-conversion