WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Тренарный оператор

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Тренарный оператор
alexserov опубликован 01-02-2002 05:29 MSK   Click Here to See the Profile for alexserov   Click Here to Email alexserov  

Я увидел ваше обсуждение оператора matr* vect + 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; }

Valery опубликован 01-02-2002 08:06 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
обратись к автору исходного сообщения, мы с ним переписывались, у него заработало вроде все. А что касается промежуточного типа MVmul, про который ты говоришь, то он вводится лишь для пущей эффективновсти, а так если не хочешь возиться с лишними типами, преобразованиями и т.п. - ничего не мешает, забей на них и просто аккуратно перегрузи все операции.
Valery опубликован 01-02-2002 08:07 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
... не все, конечно, а только тебе нужные.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.