Как правильно декларировать постфиксный унарный operator?
От: m_dotNET Россия  
Дата: 05.02.04 01:42
Оценка:
И сразу вопрос номер два:
Предположим, что есть класс реализующий вектор. Нужно поддержать умножение на целое.
Примерно так будет выглядеть метод Вектор*Целое.

Class CVector
{
    //...
    const CVector operator * ( const int rv ) const
    {
        return CVector( m_x * rv, m_y * rv, m_z * rv );
    }
};


А как правильно закодировать метод Целое*Вектор?

Напомните, пожалуйста(можно ссылочкой на нужную страницу Страуструпа).
Спасибо за Вашу помощь.
Завтра сегодня будет вчера.
Re: Как правильно декларировать постфиксный унарный operator
От: folk Россия  
Дата: 05.02.04 02:47
Оценка: 2 (1)
Здравствуйте, m_dotNET, Вы писали:

Постфиксный инкремент:
Функция-член: Class operator++(int);
Свободная функция: /*friend*/ Class operator++(Class& x, int);

_NE>И сразу вопрос номер два:

_NE>Предположим, что есть класс реализующий вектор. Нужно поддержать умножение на целое.
_NE>Примерно так будет выглядеть метод Вектор*Целое.

_NE>
_NE>Class CVector
_NE>{
_NE>    //...
_NE>    const CVector operator * ( const int rv ) const
_NE>    {
_NE>        return CVector( m_x * rv, m_y * rv, m_z * rv );
_NE>    }
_NE>};
_NE>


_NE>А как правильно закодировать метод Целое*Вектор?


Только как свободную функцию:
/*friend*/ CVector operator*(int x, CVector const& y);
Таким образом и операцию Вектор*Целое лучше тоже сделать свободной функцией.

_NE>Напомните, пожалуйста(можно ссылочкой на нужную страницу Страуструпа).

_NE>Спасибо за Вашу помощь.

Где-то в конце книги "Шаблоны С++" Вандевурда и Джосаттиса описаны шаблоны выражений, думаю тебе было бы полезно прочитать.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re: Как правильно декларировать постфиксный унарный operator
От: Vamp Россия  
Дата: 05.02.04 07:27
Оценка: 2 (1)
Про постфиксные операторы тебе уже сказали.
Что касается умножения вектора, напомню, что в STL есть тип valarray и все, что с ним связано.
Да здравствует мыло душистое и веревка пушистая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.