In der Regel dient ein Adapter zum Ausführen von Funktionsaufrufen in einem geänderten Format. Gibt es eine Möglichkeit, die gleiche Art für Member-Variablen zu tun? Das heißt, ich habe ein Objekt, das eine SomePoint
und ein anderes Objekt enthält, das eine DifferentPoint
enthält. SomePoint
speichert seine Daten als Element-Variablen in Großbuchstaben X
und Y
, wobei AnotherPoint
speichert seine Daten als Elementvariablen Kleinbuchstaben x
und x
. Das Problem ist, dass Sie keine Funktion schreiben können, die entweder SomePoint
oder DifferentPoint
akzeptiert, weil Sie nicht auf .x
oder .X
zugreifen können (auch mit Vorlagen ohne Spezialisierung für jeden einzelnen Punkttyp, in diesem Fall können Sie auch nur Überlastung des Punkttyps)."Adapter" für Elementvariablen
Die Frage ist, gibt es eine Möglichkeit, einen Adapter zu machen, der .X
für eine SomePoint
produziert, wenn .x
angefordert wird? Beide Punkttypen sind Bibliotheksklassen, daher kann ich die Interna beider Klassen nicht direkt bearbeiten. Ich möchte auch vermeiden, die Daten zu kopieren.
Ich bin verwirrt, wie dieses Problem grundlegend anders wäre, wenn Sie mit den Memberfunktionen 'getx()' und 'getX()' umgehen würden. –
@ChristianHackl Sie könnten dann einfach die Implementierung der Funktion in einem Adapter ändern, um den korrekten Wert zurückzugeben (Sie könnten einen Adapter pro Point-Klasse haben). –
Warum nicht so eine Adapterfunktion für die Membervariable schreiben, dann? Etwas wie 'int getX (SomePoint const &)' und 'int getX (DifferentPoint const &)'. –