Ich verstehe, dass es nach der C ++ - Spezifikation keine "Methode" gibt, und einige (viele? Die meisten?) C ++ - Programmierer betrachten "Methode" als Java-Ismus. Andererseits scheinen die Leute auch in einem C ++ - Forum über Methoden zu sprechen, ohne zu zucken. Ich suche nach bekannten Konventionen oder gängigen Praktiken in Bezug auf diese Terminologie.
Ich dokumentiere eine API, die sowohl C ++ - als auch Java-Versionen hat. Tatsächlich haben die Entwickler die Klassen- und Methoden- / Memberfunktionsnamen zwischen beiden gleich gehalten, vermutlich aus Gründen der Zweckmäßigkeit beim Portieren und Testen. Aus diesem Grund steht einiges, was über diese APIs dokumentiert werden muss, über der Wahl der Sprache. Ich muss in der Lage sein, allgemein über Foos und Bars mit ihren Methoden baz () und mumble () ... zu sprechen .
Wenn ich über Methoden spreche, werden Java-Programmierer dies als natürlich betrachten und C ++ - Programmierer werden es wahrscheinlich verstehen, aber einige werden es als falsch ansehen. Meine Frage ist: Wie abscheulich ist das in der Praxis ? Wie werden C ++ - Memberfunktionen herkömmlicherweise in "allgemeinen OOP" -Kontexten und nicht in C ++ - spezifischen Kontexten behandelt? Gibt es eine bessere Möglichkeit, über Mitgliedsfunktionen auf eine Weise zu sprechen, die für beide Sprachen nicht falsch ist? ("Mitgliedsfunktionen" sind etwas ausführlich.)
Dies ist keine Meinungsumfrage; Ich versuche festzustellen, ob es tatsächliche Konventionen oder übliche Vorgehensweisen gibt , um dieses Problem anzugehen.
Ich bin mir dieser Frage bewusst , aber es geht um OOP im Allgemeinen und fragt nicht nach bestimmten Sprachen.
quelle
Antworten:
Warum fügen Sie dem einleitenden Teil der Dokumentation keine Erklärung hinzu (ähnlich wie in Ihrer Frage), z. B. einen Abschnitt über Konventionen ? Dann könnten Sie erklären, dass der Begriff "Methode", wie er in Ihrer Dokumentation verwendet wird, im allgemeinen Sinne von Methode (Java), Member-Funktion (C ++), ... gemeint ist, da die Dokumentation für alle Implementierungen gilt.
quelle
Du wirst dafür nicht hingerichtet werden.
Die Beschwerde in der C ++ - Welt betrifft nicht die pedantische Korrektheit, sondern die Mehrdeutigkeit. Es gibt so viele verschiedene Arten von "Methoden" in der Wildnis, je nachdem, von welcher Domäne Sie sprechen, dass einige von uns es vorziehen, sich an die Standardterminologie zu halten, um später Missverständnisse zu vermeiden. Das bedeutet ungefähr "statisch / [nicht statisch] [rein] virtuell / [nicht virtuell] Mitglied / [frei] Funktion".
Wenn Sie stattdessen "Methode" in Ihre Dokumentation schreiben, beklagen sich einige C ++ - Programmierer möglicherweise, dass nicht wirklich klar ist, wovon Sie sprechen, oder Sie befürchten, dass Sie, wenn Sie nicht mit dieser C ++ - Konvention vertraut sind, welche anderen fehlen?
Aber ich bin mir sicher, dass es Millionen von professionellen C ++ - Programmierern gibt, die selbst keine Ahnung haben, dass dies überhaupt eine Sache ist. Es ist eine große alte Welt.
Du wirst dafür nicht hingerichtet werden.
quelle
Eiffel nennt sie Routinen oder Funktionen , C ++ nennt sie Teilnehmer - Funktionen , und (fast) in der gesamten Geschichte der Berechnung, sowohl vor als auch nach C erstellt jede andere OO - Sprache immer ++ nennt sie Methoden , so dass letztere Begriff allgemein auch verstanden werden sollte C ++ (und Eiffel) -Programmierer, es sei denn, sie haben wirklich noch nie von Simula, Smalltalk, Self, Objective-C, Newspeak, Java, C #, VB.NET, PHP, Python, Ruby, ECMAScript / JavaScript, Scala, CoffeeScript usw. gehört.
quelle