Hallo zusammen,
im Rahmen eines Praktikums soll ich eine eigene Klasse "Vektor" definieren, die ein paar Funktionen enthält. Die einfache Ausgabe von z.B. der X-Koordinate ist auch kein Problem, doch wenn ich jetzt eine Funktion schreiben will, die 2 Vektoren addiert oder subtrahiert, gerade ich ins Schwimmen....
Genauer gesagt brauche ich 2 Funktionen, die ein bisschen unterschiedlich arbeiten sollen:
Wie versteht ihr das mit der ersten Funktion? Irgendwohin muss ich das Ergebnis doch ausgeben? Soll ich einen der überlieferten Vektoren überschreiben und als Ergebnis "benutzen"?
In meiner vektor.h hatte ich mir das so gedacht:
Vektor.cpp
Meine main.cpp sieht so aus. Sie enthält noch keine Funktionsaufrufe zum Addieren/Subtrahieren.
Könnt ihr mir jetzt vielleicht helfen und mir sagen, wie ich das solide auf die Beine stellen kann? Ich habe schon einige Stunden damit verbracht, doch irgendwie gab es immer Probleme mit Zeigern auf die Klasse und so weiter. Könnt ihr mir eine solide Umsetzung beschreiben?
Vielen Dank im vorraus.
Eroli
im Rahmen eines Praktikums soll ich eine eigene Klasse "Vektor" definieren, die ein paar Funktionen enthält. Die einfache Ausgabe von z.B. der X-Koordinate ist auch kein Problem, doch wenn ich jetzt eine Funktion schreiben will, die 2 Vektoren addiert oder subtrahiert, gerade ich ins Schwimmen....
Genauer gesagt brauche ich 2 Funktionen, die ein bisschen unterschiedlich arbeiten sollen:
- Eine Funktion, um die Differenz zweier Vektoren zu bilden
- Eine statische Funktion, welche zwei Vektoren addieren kann und einen Zeiger auf den neuen Vektor zurückgibt
Wie versteht ihr das mit der ersten Funktion? Irgendwohin muss ich das Ergebnis doch ausgeben? Soll ich einen der überlieferten Vektoren überschreiben und als Ergebnis "benutzen"?
In meiner vektor.h hatte ich mir das so gedacht:
C++:
#ifndef vektor_H
#define vektor_H
class vektor
{
public: //konstruktor/destruktor
vektor(double x, double y, double z);
~vektor();
private: //member
double x;
double y;
double z;
public:
void ausgabe();
double getX();
double getY();
double getZ();
void getLength();
void sub(vektor*, vektor*);
static vektor* add(vektor*, vektor*);
};
#endif
Vektor.cpp
C++:
void sub(vektor* vektor1, vektor* vektor2)
{
// Unklar?
}
vektor* add(vektor vektor1, vektor vektor2)
{
vektor* add = new vektor(vektor1->getX() + vektor2->getX(), vektor1->getY() + vektor2->getY(), vektor1->getZ() + vektor2->getZ());
return add;
}
Meine main.cpp sieht so aus. Sie enthält noch keine Funktionsaufrufe zum Addieren/Subtrahieren.
C++:
vektor* vektor1 = new vektor(1,1,1);
vektor1->ausgabe();
vektor* vektor2 = new vektor(1,2,3);
vektor2->ausgabe();
Könnt ihr mir jetzt vielleicht helfen und mir sagen, wie ich das solide auf die Beine stellen kann? Ich habe schon einige Stunden damit verbracht, doch irgendwie gab es immer Probleme mit Zeigern auf die Klasse und so weiter. Könnt ihr mir eine solide Umsetzung beschreiben?
Vielen Dank im vorraus.
Eroli