2009-10-16 7 views
40

Lo chiamo sempre "operatore di freccia", ma sono sicuro che ha un nome ufficiale. Ho rapidamente sfogliato lo standard C++ e non l'ho visto menzionato per nome.qual è il nome ufficiale dell'operatore della freccia (->) del C++?

+0

In una bozza C99, non riesco a trovare alcuna menzione del suo nome. Viene sempre chiamato "-> operatore" in quel documento. –

+0

@Mehrdad: Il do lo chiama "operatore di freccia" nell'indice tramite – AnT

+3

AndreyT: Nell'indice, posso vedere "Operatore freccia (->)" e "Operatore puntatore (->)" –

risposta

59

Lo standard C++ lo chiama "freccia" (§5.2.5).

+3

Per prima cosa citato in 5.2.4, ma poi anche onnipresente con l'operatore punto. –

8

Secondo Wikipedia's list of operators in C and C++, è chiamato "membro per puntatore".

Ma per essere completamente onesto, l'ho sempre chiamato "freccia". Ad esempio, se avessi il codice a->b, lo leggerò come "una freccia b".

+1

L'ho letto allo stesso modo. Mi chiedo perché .... (P.S. TO TO!) –

+1

Ho trovato l'articolo su wikipedia prima di pubblicare la domanda. Nonostante sia elencato sotto la colonna "nome" nella tabella, sono incline a credere che sia una descrizione, non un nome. – rmeador

27

Bjarne Stroustrup lo chiama operatore "struttura puntatore dereferenziazione" (TC++ PL Special Edition, p. 102). Nell'indice si riferisce ad esso come l'operatore "accesso membro".

Non so se questo è "ufficiale", ma il ragazzo ha scritto la lingua, dopo tutto.

+1

Posso confermare che questo è il caso. (Sì, in realtà sono andato su The C++ Programming Language Special Edition e l'ho verificato.) –

+19

non ha inventato C, ed è da lì che proviene l'operatore. – asveikau

+2

asveikau, entrambe le affermazioni sono corrette, ma che cosa ha a che fare con la domanda? – John

12

Il nome ufficiale per questo operatore è operatore di accesso membro della classe (vedere 5.2.5). Sebbene questo nome sia collegato ad entrambi gli operatori . e ->, significa che si tratta più di un nome di gruppo. Lo . è indicato anche come e -> come operatore di punti come operatore di freccia nel testo standard.

Aggiunto in seguito: Quanto sopra si applica allo standard C++. Lo standard C si riferisce allo operatore di freccia nell'indice solo -> nell'indice. Il testo principale del documento non sembra utilizzare alcun nome specifico.

0

L'ISO standard C definisce la ->operatore o l'organo accesso->operatore. Quindi a quanto pare non ha un nome "ufficiale" in C.

Personalmente, dico solo puntatore o freccia.

4

È solo il dit (cioè non il punto).

1

risoluzione del riferimento del puntatore

1

ho sentito si riferiva a un paio di modi diversi, non è mai stato sicuro che uno in particolare è stato più di un altro ufficiale.

  • Selezione membri Operatore
  • Pointer Dereferencing Operatore
  • "la freccia thingy"

e sono sicuro che ce ne sono altri. personalmente sono meno preoccupato di ciò che è chiamato in un libro o in una versione ufficiale e più preoccupato che le persone sappiano cosa intendo quando mi riferisco ad esso, quindi secondo me "arrow thingy" è il nome migliore per questo dal momento che è il più facile per capire chiaramente a cosa viene fatto riferimento.

2

Questi termini non sono in alcun modo ufficiale, ma mi piacerebbe chiamare l'operatore punto l'accesso diretta (classe) membro dell'operatore e l'operatore freccia l'accesso indiretta (classe) membro operatore per chiarire il loro rapporto con il operatore indiretto.

2

L'indice ISO/IEC 9899: 1999 (lo standard C99) ha tre voci di indice per "operatore freccia" (a sé stante, e sotto "unione" e "struct") e fa riferimento alla sezione 6.5. 2.3 (Struttura e membri del sindacato, nella sezione sugli operatori di Postfix). Tuttavia, non vi è alcuna menzione di "freccia" nella sezione 6.5.2.3 o in qualsiasi altro punto della norma rispetto all'indice (ogni altra apparizione di "freccia" è come parte di "stretta" o una derivata di stretta).

La freccia è quindi sanzionata semi-ufficialmente nello standard C (sebbene l'indice non sia normativo o standard).

0

C'è stata una domanda recente su come l'operatore è "pronounced" nel contesto. Considerare l'operatore di moltiplicazione che è pronunciato "tempi" nel contesto.

Considero entrambi gli operatori di accesso membri {. ->} per indicare il possesso, quindi li pronuncio come possessivi sull'oggetto.

Ad esempio ... fido-> collare() ... sarebbe pronunciato come "colletto di fido".

D'altra parte il possesso non è appropriato per i verbi così ... fido-> run() ... sarebbe pronunciato come "fido corre".

+0

Questo è fuori tema: l'OP ha chiesto quale sia stato chiamato il simbolo e una risposta che cita lo standard C++ è già stata fornita. Se c'era un'altra domanda riguardante la pronuncia dei simboli, dovresti commentare lì piuttosto che qui. – DMH