Привет, если кто читал раздел численные методы в Страуструпе, то наверное видели пример оператора matr * vect1 + vect2, через промежуточную структуру. Не занете ли вы, как сделать, чтобы operator*(matr, vector) который даёт MVmul, (а на самом деле должен быть как бы вектор), вел себя во всех случаях как вектор, и не приходилось бы постоянно делать приведение типа или переопределять операторы...
Пример:
struct MVmul {
const Matrix& m;
const Vector& v;
MVmul (const Matrix& mm, const Vector& vv):
m(mm), v(vv){} operator Vector() const; // Calculate and return result}; // struct VCmul
inline MVmul operator* (const Matrix& m, const Vector& v){return MVmul(m, v);}
Пример переопределённого оператора:
inline Vector operator+(const MVmul & srcvmm, const Vector srcv){ return Vector(srcvmm) + srcv; }
AS>Привет, если кто читал раздел численные методы в Страуструпе, то наверное видели пример оператора matr * vect1 + vect2, через промежуточную структуру. Не занете ли вы, как сделать, чтобы operator*(matr, vector) который даёт MVmul, (а на самом деле должен быть как бы вектор), вел себя во всех случаях как вектор, и не приходилось бы постоянно делать приведение типа или переопределять операторы...
Маэстро может заинтересоваться следующим:
Techniques for Scientific C++
Blitz++
Pooma
Matrix Template Library
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен