Здравствуйте, romam, Вы писали:
АШ>>У Вас неверно передана семантика постфиксного инкремента. Вот с этой версией Ваши тесты пошли?
АШ>>АШ>>aa operator ++(const int ab)
АШ>>{
АШ>> aa temp(*this);
АШ>> ii++;
АШ>> return temp;
АШ>>}
АШ>>
R>С этой версией выражение
R>x=x++;
R>для инта приводит к увеличению х на еденицу, а для перегруженного ++ — нет. Имхо это можно объяснить только тем, что у интового ++ низкий приоритет, выполняется сначала
R>х=х;
R> потом —
R>x++;
R>А у перегруженного ++ — высокий.
Неправильно. Выражение x=x++ для int приводит не к увеличению x на 1, а к неопределенному поведению, поскольку в этом случае происходит одновременная модификация скалярного объекта более одного раза.
R>Проверялось на компиляторе под Linux (g++) и в MSVS 6.0
Ну и что? На других компиляторах или с другими ключами компиляции ты можешь получить иные результаты.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн