Брутально и бессердечно о программировании и проектировании
ГлавнаяФорумАртПаттерныАнтипаттерныТест-драйвВопрос-ответКнигорецензииСправочная

Модификация объекта

Если вы модифицируете объект или переменную, то не совершайте больше никаких модификаций и вообще больше не обращайтесь к объекту или переменной в пределах этого выражения. Скорее всего, повторное обращение приведет к undefined behaviour.
0
1
2
3
4
5
6
7
8
int main()
{
    int array[10] = {0};
    int n = 0;

    n = array[n++]; // Когда произойдет инкремент?
                    // До присваивания, или после?
    return 0;
}
 
Существует довольно много ситуаций, в которых не существует четких требований относительно порядка действий в пределах одного выражения. Если вы модифицировали объект, то оставьте его в покое до окончания выражения.

Оглавление
Статистика
© 2007—2009 Inside C++ Коммерческие услугиКонтактная информация

окна алюминий, trocal окна пвх. печать визиток в митино