Подтвердить что ты не робот

Какое официальное название оператора C++ arrow (->)?

Я всегда называю это "оператором стрелки", но я уверен, что у него есть официальное название. Я быстро просмотрел стандарт C++ и не увидел его по имени.

4b9b3361

Ответ 1

Стандарт С++ просто называет его "стрелкой" (§5.2.5).

Ответ 2

Bjarne Stroustrup называет его оператором разукрупнения указателя структуры (TС++ PL Special Edition, стр. 102). В индексе он ссылается на него как на оператор доступа к членству.

Не уверен, что это "официальный", но парень все-таки написал этот язык.

Ответ 3

Официальное имя этого оператора - оператор доступа к члену класса (см. 5.2.5). Хотя это имя привязано к операторам . и ->, что означает, что это больше имя группы. . также упоминается как оператор точки и -> как оператор стрелки в стандартном тексте.

Добавлено позже: Вышеупомянутое относится к стандарту С++. C обозначает -> как оператор стрелки только в индексе. Основной текст документа, похоже, не использует какое-либо конкретное имя.

Ответ 4

Согласно список операторов Википедии в C и С++, он называется "member by pointer".

Но, чтобы быть абсолютно честным, я всегда называл это "стрелой". Например, если бы у меня был код a->b, я бы прочитал это как "стрелку b".

Ответ 5

Его просто dit (т.е. не точка).

Ответ 6

Эти термины никоим образом не являются официальными, но я бы назвал оператор точки прямым (классом) оператором доступа к члену и оператором стрелки косвенным (классом) оператором доступа члена, чтобы уточнить их связь с оператором косвенности.

Ответ 7

Индекс ISO/IEC 9899: 1999 (стандарт C99) содержит три записи индекса для "оператора стрелок" (в своем собственном праве и под "союзом" и "структурой" ) и относится к разделу 6.5.2.3 (Структура и члены объединения, в разделе о операциях Postfix). Однако упоминание "стрелки" в разделе 6.5.2.3 или где-либо еще в стандарте, чем индекс (в любом другом виде "стрелка" является частью "узкого" или производного узкого).

Таким образом, стрелка частично официально санкционирована в стандарте C (однако индекс не является нормативным или стандартным параметром).

Ответ 8

Указатель разницы

Ответ 9

Я слышал, что это упоминалось несколькими разными способами, никогда не было уверенным, что кто-то, в частности, был более официальным, чем другой.

  • Оператор выбора элементов
  • Оператор разыменования указателя
  • "стрелка вещь"

и я уверен, что есть другие. лично меня меньше беспокоит то, что его называют в книге или официальной спецификации, и больше обеспокоены тем, что люди знают, что я имею в виду, когда я обращаюсь к нему, так что, на мой взгляд, "стрела вещь" - лучшее имя для нее, поскольку это самый простой чтобы четко понимать, о чем идет речь.

Ответ 10

Стандарт ISO C называет его оператором -> или оператором -> для доступа к члену. По-видимому, у него нет "официального" имени в C.

Лично я просто говорю указатель или стрелку.

Ответ 11

Возник недавний вопрос о том, как оператор "произносится" в контексте. Рассмотрим оператор умножения, который произносится как "раз" в контексте.

Я рассматриваю оба оператора доступа элемента {. → }, чтобы указать владение, поэтому я объявляю их как притяжательный объект.

Например... fido- > воротник() ... будет произноситься как "воротник fido".

С другой стороны, владение не подходит для глаголов, поэтому... fido- > Run() ... будет произноситься как "fido running".