Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22

Использование -> вместо . - почему компилятор пропускает этот случай?

24.02.2019, 10:33. Показов 3025. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
    node_t(const node_t<T>& target)
    {
        init(target->value, target->ptr_next);
    }
Почему использование -> позволяется? Разве не должна быть ошибка компиляции и требоваться . вместо ->? Что также сбивает с толку - анализатор кода реагирует без проблем на оба случая - показывая члены node_t.
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2019, 10:33
Ответы с готовыми решениями:

Почему компилятор жалуется на неправильное использование оператора ?:
Query = &quot;INSERT INTO Transport (IsIn) VALUES('&quot; + Convert.ToBoolean(this.IsInCheckBox.IsChecked) ? '1' : '0'; +&quot;') Пользуюсь ?: так...

Почему компилятор ругается на использование шаблона (template)?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;chrono&gt; #include &lt;ctime&gt; #include &lt;thread&gt; #include...

Компилятор пропускает getline
добрый вечер, пишу лабу для 10 класса по переводу числа из одной СС в другую. По неведомой мне причине компилятор пропускает строчку с...

26
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
24.02.2019, 19:26
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Croessmah Посмотреть сообщение
круто

Добавлено через 30 минут
Croessmah, я правильно понял что:
C++
1
2
3
4
S *s;
...
s.b = 42;  // тут непосредственно в стек 42 пишется со смещением
           //2 байта, а не по адресу который в указателе лежит?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.02.2019, 20:19
Цитата Сообщение от rat0r Посмотреть сообщение
Долой избыточность! Всем использовать if и goto вместо циклов!
Операторы цикла упрощают чтение и написание кода. Оператор стрелочка - нет

Добавлено через 11 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
Изначально в C эти операторы должны были иметь различное назначение.
Подробнее: https://stackoverflow.com/ques... in-c-exist
Да уж... всё-таки историческое наследие. Возможно, это сейчас кажется очевидным, что такую совместимость тащить не стоило, но 30 лет назад, думается, больше думали о том, как бы меньше переписывать существующий софт, чем о том, что много лет спустя это вызовет много геморроя и головной боли

Добавлено через 4 минуты
Цитата Сообщение от _stanislav Посмотреть сообщение
Croessmah, я правильно понял что:
По смыслу это было эквивалентно нынешнему:

C
(int*) ((char*)&s + 2) = 42;
Добавлено через 1 минуту
Т.е. запись вовнутрь переменной-указателя. А поскольку тут ещё и выход за границу двухбайтового указателя произошёл, то испортили какие-то данные по соседстве
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
24.02.2019, 20:24
Цитата Сообщение от Evg Посмотреть сообщение
По смыслу это было эквивалентно нынешнему:
это же псевдокод? &s - это значит адрес указателя?

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
А поскольку тут ещё и выход за границу двухбайтового указателя произошёл, то испортили какие-то данные по соседстве
int в те времена не был двухбайтовым?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
24.02.2019, 21:01
Цитата Сообщение от Evg Посмотреть сообщение
Возможно, это сейчас
Пришлось бы изобретать альтернативу для перегрузки.
Всё что не делается, - к лучшему.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.02.2019, 21:36
Цитата Сообщение от _stanislav Посмотреть сообщение
это же псевдокод?
Нет, это реальный код

Цитата Сообщение от _stanislav Посмотреть сообщение
&s - это значит адрес указателя?
Да

Цитата Сообщение от _stanislav Посмотреть сообщение
int в те времена не был двухбайтовым?
В те времена int и указатель были двухбайтовыми
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
24.02.2019, 22:10
Цитата Сообщение от Evg Посмотреть сообщение
Нет, это реальный код
он должен работать? у меня не работает.

Добавлено через 1 минуту
пишет E0137 выражение должно быть допустимым для изменения левосторонним значением
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.02.2019, 22:13
От левой части забыл звёздочку взять

C
*((int*) ((char*)&s + 2)) = 42;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2019, 22:13

Компилятор пропускает цикл
Здравствуйте, в общем думаю однажды, когда нибудь, у всех такая проблема возникала. В общем в отладчике искал проблему и когда...

Компилятор пропускает цикл
Здравствуйте товарищи. Столкнулся с проблемой, что компилятор пропускает цикл. Компилировал в VS2012. Потом сменил её на MinGW. Всё...

Компилятор пропускает строчки с инициализацией
здравствуйте! Копмилятор пропускает строчки с инициализацией переменных. При попытке поставить маркер, переносит этот маркер на строчку...

Компилятор пропускает две строчки
Здравствуйте! Вкратце о задании: нужно создать структуру, с помощью которой будет вводится информация о товаре. Два элемента структуры...

Компилятор пропускает строки кода
Начал писать морской бой но сталкнулся со сложность что компилятор пропускает строчки кода.Я начинающий програмист на c++. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru