Ich mache eine Bibliothek, die 3D-Koordinaten enthält, und entdeckte, dass es zwei Namen für die Komponenten eines 3D-Winkels gibt: Gier-Pitch-Roll und Heading- Elevation-BankKlassenreferenzelement zeigt auf ein anderes Element in derselben Klasse
Also habe ich die folgende (done in C++ 11):
struct Angle {
float heading;
float elevation;
float bank;
float &yaw = heading;
float &pitch = elevation;
float &roll = bank;
// Some Constructors (copy and assignment have to be made manually)
}
die den Vorteil der Beibehaltung der Schreibweise gleichwertig zwischen den beiden Namensschemata hat. Zum Beispiel:
Angle angle;
rotate(angle.yaw); // this is equivalent to rotate(angle.heading)
Ich frage mich, ob der Compiler die Referenzen waren unnötig herausfinden würde, oder wenn es wäre die Zeiger in der Struktur zu halten.
Gibt es auch eine bessere Möglichkeit, zwei Namen für ein Mitglied zu haben?
Ich schrieb im Grunde die gleiche Sache :) Aber, sollten Sie nicht Verweise auf die tatsächlichen Attribute zurückgeben? Andernfalls können sie nicht über den alternativen Namen geändert werden. Eigentlich sollten zwei Methoden zur Verfügung gestellt werden: 'const float & gier() const;' und 'float & gier();'. Dann wird es auch mit Referenzen auf einen konstanten "Winkel" arbeiten. – betabandido
@betabandido bearbeite meinen Code weg^_^wie ich schon sagte es ist 'Pseudocode'. Offensichtlich wäre es nicht vollständig wie dieses^_^(und ich gebe Referenzen zurück btw :-P) – Neal
@LuchianGrigore ahhh! ** Pseudocode ** ___pseudocode___ _pseudocode_. – Neal