:) Ich bin gerade dabei, eine Übung Übung in Klassen schreiben, und ich stieß auf ein Problem beim Testen meines Codes: Die Eingabe scheint nicht richtig zu funktionieren, da, unabhängig von Welcher Vektor ich eingabe, die Ausgabe gibt immer den (vorzeichenbehafteten, wenn ich mit einem negativen multiplizieren) Nullvektor zurück. Jede Hilfe würde sehr geschätzt werden! Danke :) (Vielleicht bin ich stumpf ist, aber ich sehe nicht, wo das ProblemEigene Vektor Klasse Eingabe Ausgabe
ist#include <cassert>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
class Vector {
private:
double x, y, z; // Coordinates
double scalar;
public:
Vector(double x1, double y1, double z1) {
x=x1; y=y1; z=z1;
}
Vector operator+ (Vector a) {
x += a.x;
y += a.y;
z += a.z;
return *this;
}
friend Vector operator* (Vector a, double scalar) {
a.x *= scalar;
a.y *= scalar;
a.z *= scalar;
return a;
}
friend Vector operator* (double scalar, Vector a) {
a.x *= scalar;
a.y *= scalar;
a.z *= scalar;
return a;
}
friend std::ostream& operator<< (std::ostream& o, Vector a) {
o << "(" << a.x << ", " << a.y << ", " << a.z << ")";
return o;
}
friend std::istream& operator>> (std::istream& i, Vector a) {
char c;
i >> c >> a.x >> c >> a.y >> c >> a.z >> c;
return i;
}
double get(char i) const {
if (i=='x') return x;
if (i=='y') return y;
if (i=='z') return z;
}
};
Das richtige Werkzeug, um solche Probleme zu lösen, ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage bearbeiten, um ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel einzufügen, das Ihr Problem zusammen mit den Beobachtungen, die Sie in der Debugger. –