И сразу вопрос номер два:
Предположим, что есть класс реализующий вектор. Нужно поддержать умножение на целое.
Примерно так будет выглядеть метод Вектор*Целое.
Class CVector
{
//...
const CVector operator * ( const int rv ) const
{
return CVector( m_x * rv, m_y * rv, m_z * rv );
}
};
А как правильно закодировать метод Целое*Вектор?
Напомните, пожалуйста(можно ссылочкой на нужную страницу Страуструпа).
Спасибо за Вашу помощь.
Здравствуйте, 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>Спасибо за Вашу помощь.
Где-то в конце книги "Шаблоны С++" Вандевурда и Джосаттиса описаны шаблоны выражений, думаю тебе было бы полезно прочитать.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Про постфиксные операторы тебе уже сказали.
Что касается умножения вектора, напомню, что в STL есть тип valarray и все, что с ним связано.