2つのベクトル(数学的ベクトル)を加算するために+を使用しようとしています。 0,0(私は、コードを実行すると演算子がfriend関数のエラーとしてオーバーロードされています
Vector m = v+t;
は、それは常にメートルであることを示しています
class Vector{
double v[Max_size];
int dim;
public:
int getDim() const;
Vector();
Vector(int n);
Vector(const Vector& a);
Vector add(const Vector&b);
friend Vector operator+(Vector summand1, Vector summand2);
};
演算子のオーバーロード:ここに私のコードです
Vector operator+(Vector summand1, Vector summand2){
int dim1 = summand1.getDim();
int dim2 = summand2.getDim();
assert(dim1 == dim2);
Vector sum(dim1);
int i;
for(i = 0; i < dim1; i++){
sum.v[i] = summand1.v[i] + summand2.v[i];
}
return sum;
}
そして、私はそれを使用する方法)(2Dベクトル)。これはコンストラクタによって生成されたデフォルト値です。どうしたの?ありがとう!
あなたの問題はコードに掲載されていないので、コードを実行するための詳細を投稿できますか? – WhiZTiM
私は間違いなくコピーコンストラクタを見たいと思います。 –
ところで...効率の理由から、私はあなたがこれを読むことをお勧めします:http://stackoverflow.com/a/414260/1621391 – WhiZTiM