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
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
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".
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. –
@ 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.) –
Tak, nie przeczytałem tego komentarza. –
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.
Metoda jest zawsze powiązana z klasą (chociaż w C++ częściej korzysta się z funkcji wyrazu członkowskiego). –
Masz rację, jeśli mówimy w OO. –
@ Pierre-AntoineLaFayette: Czy znasz "mówić" (w kontekście compsci langauges), gdzie "metoda" oznacza coś innego? –
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".
true, "atrybut", jest zwykle kojarzone w języku angielskim z "characteristic" lub "trait" (innym słowem o określonym znaczeniu w C++). – didierc
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.
Atrybuty = nieco używana, ale nieformalna terminologia. – Jon
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. –
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