Wie bekomme ich einen Kompilierungsfehler bei versehentlicher Konstruktion?

7

Gegeben 2 Klassen:

%Vor%

Und ein kurzes Hauptprogramm:

%Vor%

Dieser Code funktioniert einwandfrei. Aber bei Tippfehlern die Zeile:

%Vor%

wurde geändert zu:

%Vor%

und trotzdem besteht es die Kompilation. Was für eine einfache Änderung kann ich im Code (dem Hauptcode) vornehmen, um einen Kompilierungsfehler durch diesen Tippfehler zu bekommen?

    
Sanich 23.09.2010, 11:02
quelle

2 Antworten

22

Dies liegt daran, dass Grades einen Konstruktor mit einem einzigen Argument besitzt, der als Konvertierungskonstruktor fungiert. Ein solcher Konstruktor verwendet ein int-Argument und erstellt ein Objekt vom Typ Grades.

Daher ist die Kompilierung erfolgreich.

Machen Sie den Ersteller von 'Grades' explizit

%Vor%

Dies wird

nicht zulassen %Vor%

erlaubt aber alle folgenden

%Vor%     
Chubsdad 23.09.2010, 11:04
quelle
4

Fügen Sie dem Konstruktor das Schlüsselwort explicit hinzu:

%Vor%     
Ivo 23.09.2010 11:06
quelle

Tags und Links