powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Переписать только геттер при наследовании
25 сообщений из 148, страница 5 из 6
Переписать только геттер при наследовании
    #38625385
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.

Т. е. сначала выполняется всё, что справа от присваивания, затем результат присваивается. Почему в программе не так?
.

Перевели по пунктам, что тут написано - и поймешь
Перевёл и не понял. Берётся х. Сохранятеся в х (не знаю, зачем сохранять там, где она и так уже есть - но так написано). Приращивается на ++. Сохраняется там же. Теперь результат всего этого оказывается справа и должен быть присвоен операнду слева (когда присвоение используешь). Почему не присваивается?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625392
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320И вот логика работы постфикса...Не нужно искать логику там где её нет. Это всё пошло из С++, чтобы в котором можно было писать конструкции вида:
Код: plaintext
1.
2.
while (*p)
    sum += *p++;


Т. е. вместо того, чтобы работать с переменными, они работают с адресами и берут значения из этих адресов?

А если по адресу p будет 0? Цикл закончится.



И какое это всё имеет отношение к тому, что в примере Где-то в степи и моём не происходит присваивания? Почему присваивания не происходит-то, а?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625396
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор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++;

По таблице приоритетов операторов в этом выражении первым выполняется оператор ++. Потом присваивание. Почему на самом деле произошло наоборот - сначала присваивание, потом ++?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625404
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, не тупи, написано же: The saved value of x becomes the result of the operation.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625408
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Почему на самом деле произошло наоборот - сначала присваивание, потом ++?
по спецификации языка
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625417
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625421
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил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

Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625422
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике?
Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625424
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу только сказать, что таблица операторов никуя не отображает действительность. Т. е., плять, сначала выполняется присваивание старого значения х левому операнду, а потом приращение старого значения х присваивается самому х. ВОПРЕКИ преоритету операторов. Какого буя?!
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625427
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т. е. ни таблица приоритетов, ни алгоритм, что я выше разобрал, не отображаются действительноть.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625429
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320
The value of x is saved:


saved в другое место в памяти
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625431
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallarisuser7320The value of x is saved:


saved в другое место в памяти
Это нигде не написано, что в другое место. В вашей нотации это выглядит как КЛОНИРОВАНИЕ, а не сохранение.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625434
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, я понял. Надо найти и убить того сраного индуса или кто там у них, который писал эту статью в МСДН.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625435
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;
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625437
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Почему присваивания не происходит-то, а?Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625438
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

чё такие лёгкие задачки даёшь? Ну теперь-то, когда я понял, что МСДН писали дураки, я сразу могу сказать, что нолик будет в твоей задачке. Это ж для детсадовцев!
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625439
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Почему присваивания не происходит-то, а?Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле?
Ты не правильно объясняешь. Палларис правильно объяснил.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625441
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Вот ещё полюбуйтесь:
http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why
Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет.

По-моему, все как раз четко расписано
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625446
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallarisuser7320Вот ещё полюбуйтесь:
http://stackoverflow.com/questions/6716189/i-i-doesnt-increment-i-why
Что интересно, ответ, помеченный зелёным, ничерта почти не объясняет.

По-моему, все как раз четко расписано
Когда подсказали, что оператор ++, работающий с ОДНОЙ переменной, задействует ДВЕ переменные, одна из которых как бы скрытая, тогда всё стало ясно.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625447
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике?
Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?Несмышлёный ты, вот и вся проблема.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625450
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике?
Т. е. вместо того, чтобы доверять написанному, ты действуешь методом исключения невероятных вариантов? Это программирование или детективное расследование а-ля Шерлок Холмс?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625451
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320пропущено...

Я читаю, что вижу, и доверяю этому. Как написано, так я и понимаю. Потом беру, компиляю и получаю, что всё наоборот. Что делать? - Вешать того косноязычного идиота, кто писал пояснения в МСДН так, что всё наоборот выходит, чем там написано?Несмышлёный ты, вот и вся проблема.
Я принципиальный.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625452
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAuser7320, ты подумай над следующим: в чём разница между постфиксной и префиксной операций, если следовать твоей логике?
Т. е. вместо того, чтобы доверять написанному, ты действуешь методом исключения невероятных вариантов? Это программирование или детективное расследование а-ля Шерлок Холмс?Голову включи уже.
Я тебе намекаю, что по твоей логике получится фигня. Значит надо выключить барана и понять, что ты не правильно рассуждаешь.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625457
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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;Полярис тебе просто по пунктам разжевал. Ты даже его пункты с пунктами по ссылке по номерам сопоставить не в состоянии?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625466
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Алексей Кпропущено...
Присваивание происходит после чтения значения переменной. Тебя в институте на первом курсе не учили этому чтоле?
Ты не правильно объясняешь. Палларис правильно объяснил.Я описал постановку задачи. Палларис показал реализацию.
...
Рейтинг: 0 / 0
25 сообщений из 148, страница 5 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Переписать только геттер при наследовании
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]