2017-10-28 6 views
0

ich in meinem do folgenden Code haben ~ Ende Umfang einiger Feature:Wie Instant-Casting in eiffel

add (tempA, tempB) 

Hier Art der Argumente sind:

tempA: A 
tempB: B 

Beide werden als lokale Variable deklariert .

Und hier ist Prototyp Feature add:

add (a: A; b: B) 

Der Compiler-Fehler erhalte ich:

Formal argument type: GeneriC#1 
Actual argument type: detachable GeneriC#1 

Wie kann ich Instant-Guss Art "Tempa" und "TEMPB" Generic Typ vom abnehmbaren generischen Typ? so dass ich sie weitergeben kann, um ein Feature hinzuzufügen.

Ich bin nicht Prototyp ändern, aber ich kann Typ von "tempA" und "tempB" obwohl ändern.

Antwort

1

Bis zur Initialisierung werden die lokalen Variablen als abtrennbar behandelt. Sie können entweder durch Zuweisen von Werten zu ihnen

tempA := exprA -- exprA should return a value of type A 
tempB := exprB -- exprB should return a value of type B 

initialisiert werden (zB exprA könnte ein formales Argument der Funktion in Frage) oder durch die Objekte direkt zu erstellen:

create tempA 
create tempB 

(möglicherweise mit der Schöpfung Verfahren falls erforderlich, dh create tempA.make ...).

Verwandte Themen