Vektor-Klasse
-
// Vektor Klasse public __gc class Vektor { public: Double y, x, z; public: Vektor(); Vektor(Double y, Double x, Double z); Vektor(String __gc* strVektor); // "(123.23,1232.23,4235345.)" String __gc* ToStr(); }; // 2. Klasse->Methoden ... getRotation(...); void setRotation(...);In dieser Klasse will ich die Werte in den Vektor schreiben/lesen.
Wie müssen die Methoden dazu aussehen?
-
Vector v(0,0,7);//initialisiert einen Vector v.x=100;//x-Wert ändern if(v.z!=0)//z-Wert abfragen cout<<"nicht auf Bodenebene\n"; ...(die Elemente von Vektor sind "public", also kannst du sie auch direkt nutzen)
-
// Vektor Klasse public __gc class Vektor { private: Double y, x, z; public: Vektor(); Vektor(Double y, Double x, Double z); Vektor(String __gc* strVektor); // "(123.23,1232.23,4235345.)" String __gc* ToStr() String __gc* Vektor::ToStr() { String* vec = String::Concat(S"(", y.ToString(), x.ToString(), z.ToString(), S")"); return vec; } void setVektor(); }; // 2. Klasse public __gc class 2.Klasse { private: Double pitch, yaw, roll; Vektor __gc* rotation; public: String* getRotation(){ return rotation->ToStr(); } void setRotation(Double pitch, Double yaw, Double roll){ Vektor* vec3d = new Vektor(pitch, yaw, roll); } };Komme hier nicht weiter. Das Problem hab ich mit der Übergabe an die Rotation-Methode. WEiß nicht, wie ich da vorgehen soll..
-
(am Rande: Glaubst du wirklich, daß du Namen wie "1.Klasse" durch den Compiler bekommst?)
OK, zu deinem eigentlichen Problem: Du erzeugst in der setRotation()-Methode einen neuen Vektor, den du gleich wieder vergisst - das ergibt erstens ein mögliches Speicherleck und bringt dir zweitens nicht sehr viel, da du diesen Vektor noch benötigst. Richtig müsste es so aussehen:
class Klasse1 { private: Vector rotation; public: void setRotation(Double p,Double y,Double r) { rotation=Vektor(p,y,r); } String* getRotation() { return rotation.toStr(); } };PS: Was für eine Sprache ist das eigentlich? Bestimmt kein reines C++
-
(am Rande: Glaubst du wirklich, daß du Namen wie "1.Klasse" durch den Compiler bekommst?)
Ne, war auch nur hier skizzenhaft geschrieben.
PS: Was für eine Sprache ist das eigentlich? Bestimmt kein reines C++
.NET Framework -> Managed C++
Deshalb auch die seltsamen Pointer und Stringsbehandlung...