C++ Jargon



  • cooky451 schrieb:

    Gugelmoser schrieb:

    Elementfunktion, so wird es im "Der C++ Programmierer" von Breymann vermittelt.

    Okay.. wie heißt das denn dann auf Englisch? "element function"? Klingt für mich doch sehr ungewohnt..

    Nein Element ist die Verdeutschung von Member. In Standardreferenz sind die genannt. Im neuen Stroupy allerdings schon nicht mehr.

    Gugelmoser schrieb:

    Wenn ein Synonym außen vor gelassen wird, heißt das nicht, dass es kein Synonym mehr ist. Z.B. würde ich in C++ den Begriff Subclass nicht für eine abgeleitete Klasse verwenden, weil ich finde, dass der Begriff eher zur Javawelt gehört

    Wie kommt denn dazu, selbst in der Standardreferenz wird die alternativ Terminologie gewürdigt.



  • MatheStein schrieb:

    Danke für deine Hilfe 🙂

    Ich bin neu in der C++ Welt und habe mich auf das Buch "Objektorientiertes Programmieren in C++ - Kapitel 2.4 Terminologie"

    Erlenkötter oder Josuttis? Die sind wohl nicht so ganz aktuell ( laut Erscheinungsdatum und Kommentaren bei Amazon ).



  • Also, vom deutsch/englischen mal abgesehen (ich mische hier mal frei Schnauze):
    Alle fetten Begriffe sind durchaus bekannte Begriffe mit denen jeder, der etwas C++ kann, was anfangen kann

    Funktion: wird in C++ häufig recht allgemein benutzt, wenn man sich genauer festlegen will, sagt man meist einerseits freie Funktion, andererseits Methode, member function oder Elementfunktion (alles schon gehört, manches häufiger als anderes).

    Attribut, Element, member(-Variable) ist in C++ denke ich selbsterklärend - Da es in C++ nur die eine Art gibt (anders als in C#) ist auch klar, was gemeint ist und es wird nicht speziell vermieden "Attribut" zu sagen. Attribut usw. können sich je nach Kontext auf die Variable innerhalb der Klassendefinition beziehen ( X::a ) als auch auf den Wert dieser Variablen in einem bestimmten Objekt ( x.a ). Hin und wieder findet man auch den Begriff subobject, der sowohl Attribute als auch den Basisklassenteil eines Objekts bezeichnen kann.

    statische Methode oder static member function ist deutlich üblicher als Klassenmethode. Ebenso statisches Element.

    Instanz ist etwas mehrdeutig belegt. Man unterscheidet zwischen Klasseninstanz als Objekt einer Klasse und template-Instanz(-iierung).

    Eine Klasse kann je nach Kontext auch mal ein C-struct (oder allgemeiner eine POD-Klasse) sein, muss also nicht unbedingt mit Kapselung, Konstrutktoren und so weiter gesegnet sein.

    Ein Objekt ist im Standard-Sprachgebrauch alles, was irgendwie Speicher belegt. Also wird z.B. auch eine int-Variable oder ein Pointer als Objekt bezeichnet.

    Eine Unterklasse bzw. subclass bezeichnet meistens eine innere Klasse, die also innerhalb einer anderen Klasse definiert wurde. Im Gegensatz dazu spricht man bei Vererbung meistens von Basisklasse und abgeleiteter Klasse, hin und wieder auch mal von Elternklasse und Kindklasse (meistens von Einsteigern).



  • Wenn ich mich richtig erinnere, findet man in der deutschen Übersetzung von "Die C++ Programmiersprache" so Dinger wie
    - statische Elementfunktion
    - nicht-statische Elementfunktion
    - statisches Datenelement
    - nicht-statisches Datenelement
    wenn es um "Elemente" geht (die Dinger, die man in eine class/struct-Definition reinpackt). Das wurde ja schon erklärt.

    Bzgl Templates:
    - Klassentemplate (eine Schablone für Typen. Beispiel: std::vector)
    - Funktionstemplate (eine Schablone für Funktionen. Beispiel: std::sort)
    - Spezialisierung (eine "Instanz" eines Templates bzw manuelle, Beispiel: std::vector<int>)

    ...wobei man auch von Spezialisierung bzw Teilspezialisierung spricht, wenn man eine für bestimmte Template-Parameter von der "Mutter-Schablone" abweichende Definition meint.

    pumuckl schrieb:

    Eine Klasse kann je nach Kontext auch mal ein C-struct (oder allgemeiner eine POD-Klasse) sein, muss also nicht unbedingt mit Kapselung, Konstrutktoren und so weiter gesegnet sein.

    Da würde ich noch differenzieren.
    Klasse -> class
    Klassentyp -> class, struct, union

    Der C++ Sprachstandard verwendet so jedenfalls den Begriff "class type" im Englischen.

    pumuckl schrieb:

    Ein Objekt ist im Standard-Sprachgebrauch alles, was irgendwie Speicher belegt. Also wird z.B. auch eine int-Variable oder ein Pointer als Objekt bezeichnet.

    Guter Hinweis! Hätte ich jetzt nicht dran gedacht. Ja ... "an object is a region of storage". Also, der Begriff beschränkt sich nicht auf Instanzen von Klassen.



  • krümelkacker schrieb:

    pumuckl schrieb:

    Eine Klasse kann je nach Kontext auch mal ein C-struct (oder allgemeiner eine POD-Klasse) sein, muss also nicht unbedingt mit Kapselung, Konstrutktoren und so weiter gesegnet sein.

    Da würde ich noch differenzieren.
    Klasse -> class
    Klassentyp -> class, struct, union

    Der C++ Sprachstandard verwendet so jedenfalls den Begriff "class type" im Englischen.

    Kann man durchaus differenzieren, der Standard machts auch - Ottonomral-C++-Geek machts nicht immer, deshalb muss man aus dem Kontext raushören, ob jemand mit "Klasse" auch wirklich eine Klasse oder "class type" meint.



  • Vielen Dank für die vielen Hilfen 🙂

    Hat einer von euch noch eine treffende Bezeichnung für die Memberfunktionen und Membervariablen zusammen?
    Ich hab diese bisher Klassenelemente genannt, wäre Memberelement evtl. besser?

    Viele Grüße und schönen Sonntag 🙂



  • MatheStein schrieb:

    Hat einer von euch noch eine treffende Bezeichnung für die Memberfunktionen und Membervariablen zusammen?

    Was ist denn falsch an den Wörtern?



  • Gar nichts 🙂

    Ich wollte nur wissen, ob es evtl. eine schönere Bezeichnung als Klassenelement gibt für die Vereinigung dieser Mengen (der Memberfunktionen und Membervariablen)

    Gruß 🙂



  • Ach so. Na ja.. Member vielleicht? Aber da werden vielleicht Leute denken, dass man nur die Variablen meint. Allerdings braucht man beides zusammen so selten, da kann man es auch ausschreiben. 🙂



  • Member ist gut, danke 🙂


Anmelden zum Antworten