2013-08-16 12 views
5

Czy ktoś może od razu ujednoznacznić atrybuty i metody klas dla C++? Miałem wrażenie, że atrybut oznacza dowolną zmienną składową, a metoda oznacza dowolną funkcję członka.C++ Czy poprawnie wywoływać "atrybuty" członków klasy?

Dzięki

+1

Atrybuty = nieco używana, ale nieformalna terminologia. – Jon

+1

Nie użyłbym w ten sposób terminu 'attributes' w C++, ponieważ nazwa' attributes' odnosi się teraz do 100% całkowicie niepowiązanej części języka. –

+1

Nie sądzę, że jest niepoprawny, jak w "nie można używać tych słów", lub jak w "nie posiadają tego znaczenia w C++". Jednak słowo _attribute_ jest używane od C++ 11 dla [czegoś innego] (http://en.cppreference.com/w/cpp/language/attributes). Tak długo, jak będziesz wystarczająco czysty w swoich warunkach użytkowania i nie będziesz trzymał się zbyt daleko od istniejących terminologii, nie powinno to stanowić problemu. – didierc

Odpowiedz

6

Określ "poprawny".

Odniesienie do elementów danych i funkcji członków jako "atrybutów/właściwości" i "metod", odpowiednio, jest powszechną praktyką - jest to ogólne słowo OO. („Atrybutów” są stosowane w C++ dla something else, choć, więc to może równie dobrze być źródłem nieporozumień.)

standardem C++, jednak robi nie używać tych terminów (oprócz atrybutów oczywiście, jak wyjaśnione powyżej). Jeśli nie chcesz ryzykować niczego i zawsze masz rację, użyj "członków danych" i "funkcji członków".

Ale jeśli chcesz tylko wyjaśnić C++ programistom Java, możesz na samym początku odejść od "własności" i "metody".

+3

Nazwałbym to ** niepoprawnie **. Nie jest to ten sam przypadek, co * method * i * member function *, ponieważ istnieje pojęcie o nazwie * attribute * w standardzie C++. Oznacza to, że jeśli mówimy o * metodzie * w C++, ludzie wiedzą, że * metoda * nie ma znaczenia w C++ i będą domyślnie terminem OO.Jeśli użyjesz atrybutu * w konwersacji w C++, wiele osób zinterpretuje, że mówisz o atrybutach * zgodnie ze standardem. –

+0

@ DavidRodríguez-dribeas Tak, w zasadzie, [this] (http://stackoverflow.com/questions/18282330/c-jest-prawidłowo-do-musi-klasowych-księgowych-pisów/18282421?noredirect=1 # comment26820325_18282330). (Ponownie, nie sugeruję, że używanie ogólnych terminów byłoby lepsze od tych w Standardzie, może powinienem był to podkreślić lepiej.) –

+0

Tak, nie przeczytałem tego komentarza. –

0

Klasa atrybuty przełoży na rzecz swoich członków. Metoda nie jest taka sama jak ogólna funkcja elementu. Ale "W programowaniu obiektowym, metoda jest podprocedurą (lub procedurą) związaną z klasą." - Wikipedia.

+3

Metoda jest zawsze powiązana z klasą (chociaż w C++ częściej korzysta się z funkcji wyrazu członkowskiego). –

+0

Masz rację, jeśli mówimy w OO. –

+0

@ Pierre-AntoineLaFayette: Czy znasz "mówić" (w kontekście compsci langauges), gdzie "metoda" oznacza coś innego? –

0

W typowych słowy, atrybut opisuje coś, „Jedną z cech tego samochodu jest to, że dość długo” lub „jeden z atrybutów pandy jest to uderzające koloru białego i czarnego”.

ja XML, atrybuty są używane do dodawania dodatkowych informacji w znaczniku, np <species id=3212>Ailuropoda melanoleuca<common_name>Giant Panda</common_name></species> - id jest atrybutem, Ailuropoda melanoleuca jest wartością, common_name tag ciągu species.

Ale nazywam zmienne w klasie "zmiennymi składowymi" i funkcjonuję w klasie "funkcja członka" lub "metoda".

+0

true, "atrybut", jest zwykle kojarzone w języku angielskim z "characteristic" lub "trait" (innym słowem o określonym znaczeniu w C++). – didierc

2

Nie zrobiłbym tego. Chociaż może to być zrozumiane w ogólnym kontekście OO, będzie to mylące w C++ jako atrybut ma dokładną definicję w standardzie, która nie jest zgodna z elementem danych.

Powiązane problemy