Wie berechnet man die Differenz zweier Zahlen in C ++?

7

Wenn ich nur Double und Integer aktiviere, dann sind es 4 Funktionen. Aber ich möchte alle Datentypen aktivieren (int long float doppelte vorzeichenlose Zahlen usw.) Wie ist das möglich?

%Vor%     
Don Pavilon 03.11.2012, 12:08
quelle

6 Antworten

9
%Vor%

Sie brauchen die Umwandlung nicht in double - dies wird für Sie getan, wenn eines der Argumente ein double ist und während return , wenn beide Ganzzahlen sind. Jedoch,

%Vor%

kann auch mit int arguments aufgerufen werden.

    
Fred Foo 03.11.2012, 12:10
quelle
8

Verwenden Sie eine Vorlagenfunktion:

%Vor%     
juanchopanza 03.11.2012 12:10
quelle
4

Sie müssen keine Operationen "aktivieren", schreiben Sie einfach:

%Vor%     
thedayofcondor 03.11.2012 12:10
quelle
3

Im Gegensatz zu allen vorherigen Antworten würde ich C ++ 11 hinzufügen. In C ++ 11 können Sie decltype verwenden.

%Vor%

diff function gibt immer den Wert des Typs wie das erste Argument zurück. Beachten Sie, dass es sich im ersten Fall um eine Gleitkommazahl handelt, in der zweiten jedoch um eine Ganzzahl.

    
fasked 03.11.2012 12:17
quelle
1

Sie könnten eine Vorlage für dasselbe definieren

%Vor%

Dieser Code macht eine Menge Annahmen, wie der Operator - für T definiert, und der Rückgabetyp ist immer vom Typ T und so weiter ...

    
ersran9 03.11.2012 12:12
quelle
1

Sie können die Differenz immer mit absoluten Werten berechnen, zum Beispiel

%Vor%

Sie könnten Templates wie die vorherigen Antworten verwenden, die jedoch erwähnt werden.

    
Crossman 03.11.2012 12:25
quelle

Tags und Links