2013-08-16 17 views
5

Qualcuno può disambiguare per favore gli attributi e i metodi della classe per C++? Ho avuto l'impressione che l'attributo significhi una variabile membro e che il metodo significhi qualsiasi funzione membro.C++ E 'corretto chiamare le variabili membro della classe "attributi"?

Grazie

+1

Attributi = terminologia un po 'usata ma informale. – Jon

+1

Non userei il termine 'attributi' in C++ in questo modo, poiché il nome' attributes' ora si riferisce a una parte del linguaggio completamente indipendente al 100%. –

+1

Non penso che sia errato, come in "uno non può usare queste parole", o come in "non hanno quel significato in C++". Tuttavia, la parola _attribute_ viene utilizzata dal C++ 11 per [qualcos'altro] (http://en.cppreference.com/w/cpp/language/attributes). Finché sei abbastanza chiaro nelle tue condizioni d'uso e non ti allontani troppo dai termini esistenti, non dovrebbe essere un problema. – didierc

risposta

6

Definire "corretto".

Il riferimento ai membri dati e alle funzioni membro come "attributi/proprietà" e "metodi", rispettivamente, è una pratica comune - è la dicitura OO generale. ("Attributi" vengono utilizzati in C++ per something else, però, quindi questo può benissimo essere fonte di confusione.)

serie La C++, tuttavia, fa non usano questi termini (a parte attributi naturalmente, come spiegato sopra). Se non vuoi rischiare nulla ed essere sempre corretto, usa "membri dati" e "funzioni membro".

Ma se si desidera solo spiegare C++ a un programmatore Java, è possibile ottenere "proprietà" e "metodo" all'inizio.

+3

Lo chiamerei ** errato **. Questo non è lo stesso di * metodo * e * funzione membro *, in quanto esiste un concetto denominato * attributo * nello standard C++. Cioè, se parli di * metodo * in C++, le persone sanno che * il metodo * non ha alcun significato in C++ e saranno predefiniti al termine OO.Se usi * attributo * in una conversazione C++ molte persone interpreteranno che stai parlando di * attributi * come da standard. –

+0

@ DavidRodríguez-dribeas Quindi, in pratica, [questo] (http://stackoverflow.com/questions/18282330/c-is-it-correct-to-call-class-member-variables-attributes/18282421?noredirect=1 # comment26820325_18282330). (Ancora una volta, non sto suggerendo che l'uso dei termini generali sarebbe superiore a quelli dello Standard, forse avrei dovuto enfatizzarlo meglio.) –

+0

Sì, non avevo letto quel commento. –

0

Gli attributi di una classe si tradurrebbero ai suoi membri. Un metodo non è lo stesso di una funzione membro in generale. Ma "Nella programmazione orientata agli oggetti, un metodo è una subroutine (o procedura) associata a una classe." - Wikipedia.

+3

Un metodo è sempre associato a una classe (anche se in C++ è più comune utilizzare la funzione membro parola). –

+0

Hai ragione se stiamo parlando in OO. –

+0

@ Pierre-AntoineLaFayette: Conosci un "parlare" (nel contesto di compsci langauges) dove "metodo" significa qualcos'altro? –

0

Nelle parole comuni, un attributo descrive qualcosa, "Uno degli attributi di questa vettura è che è piuttosto lungo" o "uno degli attributi del panda gigante è che colpisce i colori bianco e nero".

ho XML, gli attributi vengono utilizzati per aggiungere informazioni supplementari in un tag, per esempio <species id=3212>Ailuropoda melanoleuca<common_name>Giant Panda</common_name></species> - id è un attributo, Ailuropoda melanoleuca è un valore, common_name un tag all'interno species.

Ma io chiamo le variabili in una classe "variabili membro" e funzioni in una classe "funzione membro" o "metodo".

+0

true, "attributo", è comunemente associato in inglese con "caratteristica" o "tratto" (un'altra parola con un significato specifico in C++). – didierc

2

Non lo farei. Mentre può essere compreso nel contesto generale di OO, sarà confuso in C++ come attributo ha una definizione precisa nello standard, che non è quella del membro di dati .

Problemi correlati