:)私は現在、クラスを書く上で練習問題を練習中です。コードをテストするときに問題が発生しました。入力が正常に動作していないように見えます。どのベクトルを入力すると、出力は常にゼロベクトルを(負の数で乗算した場合は符号付き)を返します。どんな助けも高く評価されるでしょう!おそらく、私が鈍角であること午前(:)ありがとうございますが、問題は独自のベクトルクラスの入力問題
#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;
}
};
このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低でも、あなたはあなたが行った観察と一緒に、[編集]あなたの質問あなたの問題を再現[、最小完全、かつ検証](http://stackoverflow.com/help/mcve)の例を含むようにする必要があります\しますデバッガ。 –