Ja rozumiem , że według specyfikacji C ++ nie ma czegoś takiego jak „metoda”, a niektóre (wiele? Większość?) Programiści C ++ rozważyć „metoda” być Java-ism. Z drugiej strony, nawet na forum C ++ ludzie wydają się mówić o metodach bez drgań. Szukam znanych konwencji lub powszechnych praktyk dotyczących tej terminologii.
Dokumentuję interfejs API, który ma zarówno wersje C ++, jak i Java. Programiści w rzeczywistości zachowali nazwy klas i metod / funkcji między nimi, prawdopodobnie ze względu na celowość w portowaniu i testowaniu. Z tego powodu część tego, co należy udokumentować na temat tych interfejsów API, znajduje się „ponad” wyborem języka; Muszę być w stanie mówić ogólnie o Foos and Bars, z ich metodami baz () i mumble () ...?
Jeśli mówię o metodach, programiści Java uznają to za naturalne i, jak się wydaje, programiści C ++ prawdopodobnie zrozumieją, ale niektórzy uznają to za niepoprawne. Moje pytanie brzmi: jak haniebne jest to w praktyce ? W jaki sposób konwencjonalnie omawia się funkcje członka C ++ w kontekstach „ogólnych OOP”, a nie specyficzne dla C ++? Czy istnieje lepszy sposób mówienia o funkcjach członkowskich w sposób, który nie jest niepoprawny dla żadnego języka? („Funkcje składowe” to trochę zbyt szczegółowe.)
To nie jest badanie opinii; Próbuję ustalić, czy istnieją faktyczne konwencje lub wspólne praktyki mające na celu rozwiązanie tego problemu.
Mam świadomość tego pytania , ale ogólnie dotyczy OOP i nie pyta o konkretne języki.
źródło
Odpowiedzi:
Dlaczego nie zamieścisz wyjaśnienia (podobnie jak w pytaniu) we wstępnej części dokumentacji, np. W sekcji Konwencje ? Następnie możesz wyjaśnić, że termin „metoda” użyty w dokumentacji oznacza w ogólnym znaczeniu metody (Java), funkcji składowej (C ++), ponieważ dokumentacja dotyczy wszystkich implementacji.
źródło
Nie zostaniesz za to stracony.
Skarga w świecie C ++ nie dotyczy pedantycznej poprawności: jest niejasna. Istnieje wiele różnych rodzajów „metod” na pustyni, w zależności od dziedziny, o której mówisz, że wielu z nas woli trzymać się standardowej terminologii, aby uniknąć nieporozumień później. Oznacza to z grubsza „statyczną / [niestatyczną] [czystą] wirtualną / [nie-wirtualną] członka / [darmową] funkcję”.
Jeśli zamiast tego napiszesz w swojej dokumentacji „metodę”, niektórzy programiści C ++ mogą narzekać, że nie jest do końca jasne, o czym mówisz, lub martwić się, że jeśli nie znasz tej konwencji C ++, jakich innych brakuje?
Ale jestem pewien, że istnieją miliony profesjonalnych programistów C ++, którzy sami nie mają pojęcia, że to nawet coś. To wielki stary świat.
Nie zostaniesz za to stracony.
źródło
Eiffel nazywa ich procedur lub funkcji , C ++ nazywa ich funkcje składowe i (prawie) każdy inny język OO kiedykolwiek stworzono w całej historii informatyki, zarówno przed jak i po C ++ nazywa ich metody , tak że ostatni termin powinien być powszechnie rozumiane nawet przez Programiści C ++ (i Eiffel), chyba że tak naprawdę nigdy nie słyszeli o Simula, Smalltalk, Self, Objective-C, Newspeak, Java, C #, VB.NET, PHP, Python, Ruby, ECMAScript / JavaScript, Scala, CoffeeScript,…
źródło