web-dev-qa-db-ja.com

C ++の矢印(->)演算子の正式名称は何ですか?

私はいつもそれを「矢印演算子」と呼んでいますが、正式な名前があると確信しています。私はすぐにC++標準をざっと読みましたが、名前で言及されているのを見ませんでした。

45
rmeador

C++標準では、これを単に「矢印」と呼んでいます(§5.2.5)。

64
Jerry Coffin

Bjarne Stroustrupは、これを「構造体ポインター逆参照」演算子と呼んでいます(TC++ PL Special Edition、p.102)。インデックスでは、彼はそれを「メンバーアクセス」演算子と呼んでいます。

これが「公式」であるかどうかはわかりませんが、結局のところ、その人はその言語を書きました。

28
John

この演算子の正式名称はクラスメンバーアクセス演算子です(5.2.5を参照)。この名前は.演算子と->演算子の両方に付けられていますが、これはグループ名に近いことを意味します。標準テキストでは、.ドット演算子->矢印演算子とも呼ばれます。 。

後で追加:上記はC++標準に適用されます。 C標準では、インデックスでのみ->矢印演算子と呼びます。ドキュメントのメインテキストは特定の名前を使用していないようです。

14
AnT

ウィキペディアのCおよびC++の演算子のリスト によると、これは「ポインターによるメンバー」と呼ばれます。

しかし、正直に言うと、私はいつもそれを「矢印」と呼んでいます。たとえば、コードがa->b、私はそれを「矢印b」と読みます。

8
Thomas Owens

それはただのディット(つまりドットではない)です。

4
James Morris

これらの用語は決して公式ではありませんが、ドット演算子を直接(クラス)メンバーアクセス演算子、矢印演算子を間接(クラス)メンバーアクセス演算子と呼びます。間接演算子との関係を明確にするため。

3
Christoph

ISO/IEC 9899:1999(C99標準)のインデックスには、「矢印演算子」(それ自体、「union」および「struct」の下)の3つのインデックスエントリがあり、セクション6.5.2.3(構造体および和集合のメンバー、Postfix演算子のセクション)。ただし、セクション6.5.2.3または標準のインデックス以外の場所に「arrow」についての言及はありません(「arrow」の他のすべての外観は「narrow」の一部またはnarrowの派生物です)。

したがって、ArrowはC標準で半公式に認可されています(ただし、インデックスは規範的または標準的な設定ではありません)。

2

間接参照ポインタ

1
Jonathan D

それがいくつかの異なる方法で言及されていると聞きましたが、特に誰かが他の人よりも公式であるとは決して確信していませんでした。

  • メンバー選択演算子
  • ポインター間接参照演算子
  • 「矢のこと」

他にもあると思います。個人的には、本や公式仕様で何と呼ばれているのか、私がそれを参照するときに人々が私が何を意味するのかを知っているのではないかと心配しているので、私の意見では、「arrowthingy」は最も簡単なので最高の名前です何が参照されているかを明確に理解する。

1
dbgarf

ISO C標準では、the->operatorまたはmember-access->operator。したがって、Cでは「正式な」名前がないようです。

個人的には、ポインタまたは矢印とだけ言います。

0
David R Tribble

オペレーターが文脈の中でどのように「発音」されるかに関する最近の質問がありました。文脈の中で「回」と発音される乗算演算子を考えてみましょう。

私は両方のメンバーアクセス演算子{を検討します。 ->}所有格を示すため、オブジェクトの所有格として発音します。

たとえば... fido-> collar()...「fidoの襟」と発音されます。

一方、所持は動詞には適切ではないので... fido-> run()...「fidoruns」と発音されます。

0
phreed