Ich habe einen Konstruktor der Form:
MeineKlasse (int a, int b, int c);
und es wird mit Code wie folgt aufgerufen:
MyClass my_object (4.0, 3.14, 0.002);
Ich möchte diese automatische Konvertierung von Double zu Int verhindern oder zumindest Warnungen zur Kompilierzeit erhalten.
Es scheint, dass das "explizite" Schlüsselwort in diesen Fällen nicht funktioniert, oder?
Deklarieren Sie einen privaten Konstruktor wie folgt:
%Vor% Das wird einen Kompilierzeitfehler für jede Konstruktion verursachen, die 3 Parameter verwendet, die nicht alle int
sind, und es ist portabel.
Deklarieren Sie einen privaten MyClass(double a, double b, double c)
-Konstruktor.
Tags und Links c++ constructor casting implicit