|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||
Указатель на ссылку или что это такое?10.03.2017, 11:44. Показов 31585. Ответов 34
Метки нет (Все метки)
Как это понимать? Указатель на ссылку? Не понятно. Вроде такое не имеет смысла Или это своего рода упрощенное использование указателя на указатель? Прошу объяснить Добавлено через 6 минут На СИшном компиляторе не компилится... Значит плюсовая фича Но чего оно делает?
0
|
||||||
| 10.03.2017, 11:44 | |
|
Ответы с готовыми решениями:
34
Как получить ссылку на указатель или указатель на указатель в массиве? Нюансы синтаксиса: запись double *array - это указатель или что-то иное? Что такое хэндлер файла? Что такое файловый указатель? |
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|||||||
| 24.12.2018, 01:54 | |||||||
|
А в таком моменте происходит следующее:
здесь уже ничего не игнорируется? и еще вопрос в перегруженной функции"cout<<" когда она принимает указатель и выводит всю строку до нуля терминатора, она получает адрес самого указателя, а не первого элемента?
0
|
|||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
|||||
| 24.12.2018, 11:21 | |||||
|
Компилятор видит, что результаты выражений эквивалентны и не генерирует дополнительный бессмысленный код. Ваше cout << *&*a; эквивалентно cout << *a;.Предыдущие cout << &*a; эквивалентно cout << a;.Естественно все это в силе, если мы говорим о встроенных версиях этих операторов. Если они перегружены, то в общем случае каждая операция будет выполнена. char * s = r;.Эта ситуация ничем не отличается от варианта с cout. Почему вы решили будто бы здесь что-то будет иначе? Элементы есть у массива. Указатель - это курсор. Он может указывать на один из элементов последовательности заданной массивом или на одиночный объект. Возьмите листочек в клеточку, нарисуйте там карту для морского боя. Вы когда в морском бое делаете ход, называете координату клетки, например, А-1 - это и есть адрес. Если вы выделите клетку под эту запись A-1, то вы создаете переменную-указатель, которая содержит заданный адрес. Если вы выделили несколько клеток подряд, то получаете массив. Это же очень просто. Порисуйте, разберитесь.
3
|
|||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|||||||
| 24.12.2018, 13:20 | |||||||
cout << *&*a; как можно трактовать? справа на лева 1) разыменование, 2) получение адреса разыменованного указателя, и снова разыменование это адреса Т.Е получает доступ по адресу полученному операцией &? аналогично cout <<*a; а здесь cout << &*a; разыменование и получение адреса элемента на который указывает указатель, Т.Е тоже самое что cout <<a; потому что в этом выражении "а" так же содержит адрес первого элемента(не обязательно на первый элемент) Выглядит так, будто в этих выражениях операция & это обратное действие операции *Это очень странная фраза. У указателя нет никаких "элементов"."s получает адрес только первого элемента разыменованного(получение содержимого по адресу на который указывает указатель) указателя и все?" char *s = &*r;здесь я имел ввиду "s" получает адрес который получается в ходе 1)разыменование "r" 2)и получение адреса того элемента на который указывает указатель "r". В итоге это по логике тоже самое что просто char *s = r; потому что "r" так же содержит адрес первого элемента(первой ячейки если учитывать состояние указателя по "дефолту")
char *s = r; по этому компилятор не исполняет эти операции.
0
|
|||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
|
| 24.12.2018, 13:27 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|
| 24.12.2018, 13:29 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
||||||||||||||||
| 16.01.2019, 15:43 | ||||||||||||||||
|
подскажите пожалуйста на что указывает разыменованный *this здесь?
что получится если это заменить просто
0
|
||||||||||||||||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||
| 16.01.2019, 15:50 | ||
|
что будет если разыменовать this указатель? получим объект на который указывает this.на какой объект указывает this? на самого себя.тогда что за объект получится после разыменования this? тот самый объект, для которого был применен this
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||||||||||||||||
| 16.01.2019, 16:08 | |||||||||||||||||||||
|
Achill, в функции класса (методе) записи
Добавлено через 2 минуты А запись
1
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|||||||||||||||||||||||||||
| 16.01.2019, 22:58 | |||||||||||||||||||||||||||
если в префиксном инкременте с помощью перегруженного ++
как происходит вызов если вызов operator++ справа от переменной?
почему нельзя делать так? где об этом можно по подробнее узнать? объявление operator+ в классе -наследнике, в котром вызывается operator+ базового класса ОШИБКА "error: statement cannot resolve address of overloaded function" operator+(sterling s2){ sterling::operator+; }
0
|
|||||||||||||||||||||||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||||||||||||||||
| 16.01.2019, 23:49 | ||||||||||||||||||||
|
https://ru.wikipedia.org/wiki/... _и_C%2B%2B
Добавлено через 5 минут
1
|
||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|||||||||||||||||
| 17.01.2019, 01:32 | |||||||||||||||||
|
а вот "b" это постфиксный я написал. там выше вы не много не так поняли где operator(a) и первый вопрос заключался не в том как описывать постфиксную перегрузку, попытаюсь объяснить вопрос в следующем: вот например по правилам в перегруженном "+" имеет значение то что левый операнд является вызывающим этот перегруженный оператор и то что левый операнд становится первым аргументом этой перегруженной функции а второй аргумент берется с права от знака "+". В перегруженном "[]" например:
а какие правила подобные существуют для "++" ? И у меня вопрос как будет так же выглядеть вызов перегруженного ПОСТФИКСНОГО "++" просто я подумал что в префиксном переменная находящаяся справа от этого перегруженного инкремента и становится аргументом функции а в постфиксном как? как компилятор понимает то что аргументом перегруженного оператора должна быть переменная слева от знака "++" ? как будет выглядеть в действительности вызов перегруженного оператора"++" для префиксного что-то типа " b.operator++() " ? а для постфиксного тоже самое но с int? а если реализация вне класса с помощью дружественного метода?
0
|
|||||||||||||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||
| 17.01.2019, 01:48 | |||||||
1
|
|||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
||||||||||||
| 17.01.2019, 09:08 | ||||||||||||
|
Перегрузка в качестве свободной функции
Перегрузка в качестве функции-члена класса
Вроде бы эти вещи есть в учебниках, нет?
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 37
|
|||||||
| 17.01.2019, 11:03 | |||||||
Если писать просто a++ то тут будет иметь значение то что переменная находится слева от инкремента. Об этом инфа есть но на этом внимание не заостряется, там пишут только то что лишний аргумент int нужен для того чтобы компилятор отличил перегруженную функцию одного и того же оператора(про все операторы в общем), а на счет влияния этого на префикс и постфикс для оператора "++" типа с int это обязательно будет считаться что есть постфиксный перегруженный оператор "++" и обязательно будет вызываться именно он если компилятор обнаружит что переменная стоит слева от знака инкремента иначе как бы компилятор понял какую функцию вызвать при ++a или b++ очевидно что с помощью положения переменной которая находится справа или слева от знака? если слева то вызывается та которая с int А если вызывать по типу a.operator++() то тут уже самому надо указывать наличие или отсутствие лишнего аргумента int. Об этом инфы у меня вроде нет.
0
|
|||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 17.01.2019, 11:53 | |
|
0
|
|
| 17.01.2019, 11:53 | |
|
Указатель на ссылку: как это использовать ? как такое правильно писать? это ссылка на указатель? Что такое указатель на член класса?
Что такое указатель и с чем его есть Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|