|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Pallarisuser7320If x is classified as a variable: x is evaluated to produce the variable. The value of x is saved. The selected operator is invoked with the saved value of x as its argument. The value returned by the operator is stored in the location given by the evaluation of x. The saved value of x becomes the result of the operation. Т. е. сначала выполняется всё, что справа от присваивания, затем результат присваивается. Почему в программе не так? . Перевели по пунктам, что тут написано - и поймешь Перевёл и не понял. Берётся х. Сохранятеся в х (не знаю, зачем сохранять там, где она и так уже есть - но так написано). Приращивается на ++. Сохраняется там же. Теперь результат всего этого оказывается справа и должен быть присвоен операнду слева (когда присвоение используешь). Почему не присваивается? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:10 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320И вот логика работы постфикса...Не нужно искать логику там где её нет. Это всё пошло из С++, чтобы в котором можно было писать конструкции вида: Код: plaintext 1. 2.
Т. е. вместо того, чтобы работать с переменными, они работают с адресами и берут значения из этих адресов? А если по адресу p будет 0? Цикл закончится. И какое это всё имеет отношение к тому, что в примере Где-то в степи и моём не происходит присваивания? Почему присваивания не происходит-то, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:13 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
авторThe ++ and -- operators also support prefix notation, as described in Section 7.6.5. The result of x++ or x-- is the value of x before the operation, whereas the result of ++x or --x is the value of x after the operation. Я вот тут не понял. int x = 0; int y = x++; Берём выражение 2: int y = x++; По таблице приоритетов операторов в этом выражении первым выполняется оператор ++. Потом присваивание. Почему на самом деле произошло наоборот - сначала присваивание, потом ++? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:17 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, не тупи, написано же: The saved value of x becomes the result of the operation. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:27 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Почему на самом деле произошло наоборот - сначала присваивание, потом ++? по спецификации языка ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:30 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:36 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Изопропилuser7320Почему на самом деле произошло наоборот - сначала присваивание, потом ++? по спецификации языка Это не ответ. авторThe result of x++ or x-- is the value of x before the operation, whereas the result of ++x or --x is the value of x after the operation. Это ответ. Но это противоречит таблице приоритетов операторов. Мол, забейте на таблицу и читайте, что ТУТ у нас написано. skyANAuser7320, не тупи, написано же: The saved value of x becomes the result of the operation. И я о том же. Разберём выражения int x = 0; int a = x++; по алгоритму из МСДН: авторIf x is classified as a variable: x is evaluated to produce the variable. The value of x is saved. The selected operator is invoked with the saved value of x as its argument. The value returned by the operator is stored in the location given by the evaluation of x. The saved value of x becomes the result of the operation. x is evaluated to produce the variable: x=0; a=0 The value of x is saved: x=0; a=0 The selected operator is invoked with the saved value of x as its argument: x=0; a=0 The value returned by the operator is stored in the location given by the evaluation of x: x=1; a=0 The saved value of x becomes the result of the operation: в этот момент второе выражение эквивалентно int a = 1; и результат должен быть: x=1; a=1 Так какого это не так?! Вот ещё полюбуйтесь: http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:41 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:43 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Я могу только сказать, что таблица операторов никуя не отображает действительность. Т. е., плять, сначала выполняется присваивание старого значения х левому операнду, а потом приращение старого значения х присваивается самому х. ВОПРЕКИ преоритету операторов. Какого буя?! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:46 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Т. е. ни таблица приоритетов, ни алгоритм, что я выше разобрал, не отображаются действительноть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:48 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320 The value of x is saved: saved в другое место в памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:51 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Pallarisuser7320The value of x is saved: saved в другое место в памяти Это нигде не написано, что в другое место. В вашей нотации это выглядит как КЛОНИРОВАНИЕ, а не сохранение. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:55 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Короче, я понял. Надо найти и убить того сраного индуса или кто там у них, который писал эту статью в МСДН. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:56 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx If x is classified as a variable: 1.x is evaluated to produce the variable. 2.The value of x is saved. 3.The selected operator is invoked with the saved value of x as its argument. 4.The value returned by the operator is stored in the location given by the evaluation of x. 5.The saved value of x becomes the result of the operation. 1. Вычисляем x 2. __x = x; 3/4. x = x+1; 5. return __x; ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Почему присваивания не происходит-то, а?Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Где-то в степи, чё такие лёгкие задачки даёшь? Ну теперь-то, когда я понял, что МСДН писали дураки, я сразу могу сказать, что нолик будет в твоей задачке. Это ж для детсадовцев! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:57 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Почему присваивания не происходит-то, а?Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле? Ты не правильно объясняешь. Палларис правильно объяснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 09:59 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Вот ещё полюбуйтесь: http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет. По-моему, все как раз четко расписано ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:01 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
Pallarisuser7320Вот ещё полюбуйтесь: http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет. По-моему, все как раз четко расписано Когда подсказали, что оператор ++, работающий с ОДНОЙ переменной, задействует ДВЕ переменные, одна из которых как бы скрытая, тогда всё стало ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:04 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?Несмышлёный ты, вот и вся проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:06 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Т. е. вместо того, чтобы доверять написанному, ты действуешь методом исключения невероятных вариантов? Это программирование или детективное расследование а-ля Шерлок Холмс? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:07 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?Несмышлёный ты, вот и вся проблема. Я принципиальный. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:08 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике? Т. е. вместо того, чтобы доверять написанному, ты действуешь методом исключения невероятных вариантов? Это программирование или детективное расследование а-ля Шерлок Холмс?Голову включи уже. Я тебе намекаю, что по твоей логике получится фигня. Значит надо выключить барана и понять, что ты не правильно рассуждаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:09 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Pallarisпропущено... По-моему, все как раз четко расписано Когда подсказали, что оператор ++, работающий с ОДНОЙ переменной, задействует ДВЕ переменные, одна из которых как бы скрытая, тогда всё стало ясно.Дак это и написано по ссылке ниже:Pallaris http://msdn.microsoft.com/en-us/library/aa691363(v=vs.71).aspx If x is classified as a variable: 1.x is evaluated to produce the variable. 2.The value of x is saved. 3.The selected operator is invoked with the saved value of x as its argument. 4.The value returned by the operator is stored in the location given by the evaluation of x. 5.The saved value of x becomes the result of the operation. 1. Вычисляем x 2. __x = x; 3/4. x = x+1; 5. return __x;Полярис тебе просто по пунктам разжевал. Ты даже его пункты с пунктами по ссылке по номерам сопоставить не в состоянии? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:13 |
|
Переписать только геттер при наследовании
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле? Ты не правильно объясняешь. Палларис правильно объяснил.Я описал постановку задачи. Палларис показал реализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 10:24 |
|
|
start [/forum/topic.php?fid=20&msg=38625441&tid=1402958]: |
0ms |
get settings: |
13ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 450ms |
0 / 0 |