010
09.04.2016, 20:47 Uhr
ao
(Operator)
|
Zitat von Tetje: |
Hallo,
ist schon sehr blöde ich habe sehr drauß geachtet und bin meinen Code mehrfach durchgegangen und habe ihn mit deinem Verglichen, und das mehrfach aber es ändert nichts am Problem.
Naja zur Frage, ob man Trible sinnvoll von Pair eben lassen kann. Worin unterscheiden sich den Triple und Pair, was ist denn fundamental anders? Hat denn Pair Eigenschaften die Triple nicht hat? Das sind nun die Frage, die ich mir stelle und für mich siehts nun so aus... Pair hat alle Eigenschaften die auch Triple hat... im Sinne der Informatik die selben Attribute und überladen auch die selben Operatoren... Was ist der Unterschied, nun Pair hat zwei Attribute und Triple drei, sollange ich gewähre(n kann), dass die ersten zwei Attribute vom selben Typ sind wie die beiden Attibute von Pair, dann kommen mit der Vererbung nur noch das eine Attribut drauß und die Möglichkeit mit anderen Triples zu vergleichen... Wobei man auch hier eingentlich sicherstellen müsste, das deren Typen gleich sind, oder zumindest ähnlich... Für mich klingt das also schon sehr nach einem sinnvollem Beispiel für Vererbung, oder was spricht aus deiner Sicht dagegen?
|
Eben, ein Pair hat zwei Elemente, ein Triple hat drei. Würdest du auch Dreirad von Fahrrad ableiten? Oder 50-Euro-Schein von 20-Euro-Schein?
Eine Ableitung ist sinnvoll, wenn die abgeleitete Klasse eine Spezialisierung der Basisklasse ist. Zum Beispiel wäre Auto eine Ableitung von Fahrzeug, und Bus ebenso. Aber Bus ist keine Ableitung von Auto, zumindest nicht mit der Begründung, dass der Bus alle relevanten Eigenschaften vom Auto hat (5 Sitze) und noch weitere (45 Sitze).
Pair und Triple sind nicht nur ähnlich, sie sind sogar fast gleich. Sie unterscheiden sich nur in der Anzahl der Attribute. So wie ein zwei- und ein dreidimensionaler Vector, die würde man ja auch nicht in eine Ableitungsbeziehung zueinander setzen. So gesehen wäre der Ansatz der STL (std::tuple) richtig. |