Review meines C++ Tutorials



  • 😉 das hält den Geist beweglich. Vielleicht kann man auch etwas geschicktere Übersetzungen wählen.

    MfG Jester



  • Bashar schrieb:

    Gerard schrieb:

    (man kann statisch z.b. als const verstehen)

    Wie das?

    siehe CarstenJ posting

    Bashar schrieb:

    wenn man static Variablen sagt hatt das ein Eigennamen-Karakter,

    sagst du virtual-Funktion oder virtuelle Funktion?

    ok, virtual-Funktion spricht sich ja so seltsam aus
    aber das hinder ja nicht einen das in den tut zu benutzen, die nähste generation der programierer wird dann virtual-Funktion für besser halten



  • toll geworden 🙂

    bei den schleifen: fehlt mir aus vorallem didaktischen gründen das goto, weil der blick für schleifen geschärft wird. ebenso eine verkapselte schleife in einer schleife, weil es so höllisch oft benötigt wird, und ich weiß, daß das ein problem im denken am anfang ist.

    bei konstanten: perspektivisch die präprozessorvariante vielleicht noch, weil oft benutzt.

    bei casts: du sagst:

    Allerdings ist der Compiler nicht blöd:
    float pi=3.1415;
    Der Compiler erkennt, dass wir 3.1415 als float verwenden wollen und warnt uns nicht, obwohl double eigentlich größer ist als float.

    das studio spuckt aber folgende warnung aus:
    warning C4305: 'initializing' : Verkuerzung von 'const double' in 'float'

    vielleicht lese ich deinen satz falsch...

    bei variablen: du sagst: #include<string> //für string ..ist ok, ganz am anfang, ich bin aber darüber hinaus auch charakterarrays mit /0 an passender stelle klären, sonst gibt es immer ärger im reallife;)

    regel der großen drei: ich finde nur die regel, aber nicht ein beispiel für einen überladenen kopierkonstruktor und zuweisungsoperator, wäre vielleicht noch gut... (zeiger als membervariablen, zeiger, die durch konstruktor initialisiert werden...)

    erstmal soviel am frühen morgen



  • Jester schrieb:

    Auf der Hello-World-Seite kommt meiner Ansicht nach der Kasten mit der Erklärung, was zu tun ist, wenn sich das Fenster trotz cin.get() schließt etwas zu früh.

    Bei meinem alten Tutorial habe ich massenweise Mails bekommen, weil sich das Programm eben zu früh schließt. Es mag dort vielleicht vom logischen Ablauf zu früh kommen - allerdings wird es bereits dort benötigt (uU auch um 1 Seite nach hinten verschiebbar - aber etwa dort muss es stehen)

    AFAIK heißt das "dito"

    Oh, das wusste ich nicht. Wir sagen eigentlich alle (die ich kenne) detto - aber du hast recht, es heißt dito. Ich werde es ausbessern.

    Variablentypen schrieb:

    genauereste Gleitkommazahl

    Das ist Absicht, oder?

    ne, sollte "genauerste Gleitkommazahl" heißen.

    In welchem Umfang bzw. mit welchem Inhalt hast Du Dir den Text über die Compiler denn vorgestellt?

    Etwa so wie für Windows und Linux.
    Es soll einfach darum gehen:
    Wie kann ich C++ Code kompilieren?

    Also: einfache Erklärung zur Installation eines Compilers (am Liebsten wäre mir ein GCC) - setzen der Umgebungsvariablen, und simples HelloWorld kompilieren und Ausführen + wo gibts Doku zum Compiler (vielleicht auch ein Tutorial irgendwo?)

    Dann sollten Links zu alternativen Compiler rein und natürlich ganz wichtig: welche freien IDEs gibt es.

    Der Sinn davon soll sein: Jemanden der kein absoluter DAU ist (davon gehe ich mal aus) soll es ohne großen Probleme schaffen den Compiler zum laufen zu bekommen. Primär soll er fähig sein die Beispiele zu kompilieren - und dazu reicht ein Compiler + Editor.

    Wenn du (oder jemand Anderes) mehr schreiben will(st) (zB Tutorial über Compiler, Makefile, IDE, etc.) - ist auch 'nicht schlecht' sondern sehr gut. Würde ich liebend gerne verlinken (oder auch online stellen). Aber Primär geht es mir um eine einfache Erklärung wie man nen Compiler installiert und verwendet.

    @Bashar:
    Ich bin mit static Variablen zwar glücklicher (die selben Argumente wie Gerard), aber ich verstehe deine Argumente auch (sie machen Sinn). Ich werde mir das mal genau durch den Kopf gehen lassen.



  • Also ich finde diese "eingedeutschten" englischen Worte okay.

    Liegt allerdings daran, dass ich sie selbst seit Jahren verwende, weil sie einfach viel aussagekräftiger und kürzer sind. Oft habe ich sogar keine Ahnung, wie das auf Deutsch heissen müßte.

    Es stört den Lesefluss doch sehr, wenn man erstmal das Deutsche ins Englische übersetzen muss und dann halb wieder zurück, damit man versteht, was gemeint ist.

    Also: Lass solche Sachen wie "static Variablen" drin. An solche Schreibweisen haben sich viele gewöhnt (ich kenne einige) und es ist leichter zu erkennen, was gemeint ist.

    🙂

    PS: Zum Lesen bin ich noch nicht gekommen, aber das kommt noch.



  • Hallo,

    also ich persoenlich finde diese deutschen Wortschoepfungen oder die deutschen
    Uebersetzungen die in den Fachbuechern vorkommen, meist absoluter mist. Es
    hoert sich einfach fuer mich nicht gut an (ja, darauf kommts ja nicht an,
    sondern auf die Richtigkeit und ja, statisch und static ist hier egal).

    Vielleicht kann man es so machen, dass man beim ersten Auftreten eines
    englischen Wortes (wie z. B. static) das deutsche Wort in Klammern dahinter
    schreibt und dann im folgenden Text die deutsche Uebersetzung weg laesst.

    Man muss den Lesern ja nicht voellig das Denken abnehmen und wenn man mal ein
    englisches Wort nicht weiss, dann schaut man es eben nach, das macht man
    normalerweise ja eh so, wesgegen soll man das den Lesern hier abnehmen?

    Und ausserdem hat das einen riesen grossen Vorteil:
    I.R. muss du weniger schreiben, was auf den gesamten Text bezogen ja doch
    einiges an Schreibarbeit weniger ist :D.

    Soviel zu meinem Vorschlag. Das mit der Schreibweise ist sicherlich ne Sache,
    ueber die man sich Streiten kann und die der Eine in der einen und der Andere
    in der anderen Art und Weise gut findet.

    Wie man's dreht und wendet, man kann es nicht jeden richtig machen.

    mfg
    v R



  • Meine Überlegung dahinter war:
    static ist das Schlüsselwort, also schreibe ich static Variablen - da der Leser dann weiss was gemeint ist. Bei statisch müsste er es (zugegebener maßen recht einfach) herleiten.

    Was sagen die Anderen dazu?
    Soll ich konsequent Deutsch verwenden oder passt es so?
    Soll ich Deutsch und in Klammer den englischen Ausdruck verwenden?
    eure Meinung ist gefragt.

    Ich bin für's Deutsche.

    ich bin für static Variablen, weil static Variablen nicht wirklich statisch sind (man kann statisch z.b. als const verstehen)

    Es gibt vieles, was man kann, aber man muss ein mindestmaß an Intelligenz einfach voraussetzen.

    wenn man static Variablen sagt, hatt das ein Eigennamen-Karakter,

    Den es aber gar nicht haben sollte. Es handelt sich einfach um eine statische Variable, nicht um etwas ganz besonders tolles, was einen eigenen Namen verdient.

    wenn man nach static sucht findet man mehr passendes als wenn man nach statisch sucht

    Natürlich gibt es mehr englische als deutsche Texte. Das ist aber uninteressant.

    du hast dich schon mal für static Varibalen entschieden, auch wenn du nicht drüber nachgedacht hast sagt das doch was aus

    Ich hab schonmal einen Bug in mein Programm eingebaut ohne darüber nachzudenken; was sagt das jetzt aus?

    ich habe nix gegen denglisch, ich schreibe leiber gutes denglisch, als schlechtes englisch. mit reinen deutsch kann man sowieso nicht programmieren

    Das sagt ja auch niemand. Aber bei mir und meinen Kollegen ist es üblich statisch zu sagen und nicht "static". Wir sagen sogar Namensraum statt "namespace", was ich in dem Tutorium aber nicht für nötig halte. Templates bleiben bei uns auch templates.

    ich sehe nur nachteil mit statisch

    Ich sehe keinen einzigen und jetzt?



  • elise schrieb:

    das studio spuckt aber folgende warnung aus:
    warning C4305: 'initializing' : Verkuerzung von 'const double' in 'float'

    vielleicht lese ich deinen satz falsch...

    Ne, den Satz hast du richtig verstanden.
    Und ich würde mal behaupten, dass ich recht habe. Wobei ich den Standard jetzt nicht bei der Hand habe - vielleicht kann das jemand klarstellen (@Hume, Bashar,...)?

    Comeau warnt nicht - deshalb habe ich meine Aussage auch als richtig empfunden -> aber es wäre nicht das erste mal, dass ich blödsinn geglaubt hätte.

    @virtuell Realisticer:
    ah, sehr schön. Das werde ich vielleicht umsetzen!

    PS @all:
    wenn ich auf einen Kritikpunkt nicht antworte, dann habe ich ihn akzeptiert und werde es ausbessern.



  • Ist überhaupt genau festgelegt, wann gewarnt werden darf?



  • ich bin für static Variablen, weil static Variablen nicht wirklich statisch sind (man kann statisch z.b. als const verstehen)

    wenn man verstanden hat was statische variablen und const definierte variablen sind dann kann man das nicht falsch verstehen...

    und wenn ihr euch mit den deutsch/englischen wörtern so zickig habt macht doch einfach einen ANHANG wo dann die englische bzw. deutsche übersetzung steht...vielleicht noch mit erklärung usw. halt...

    bye

    tt



  • const definierte variablen

    Das verstehe ich nicht.
    Mit 'const' qualifizierte Variablen?
    Konstanten?

    Wogegen konstante Veriablen irgendwie quatsch wäre, da es ziemlich paradox ist.



  • @Shade
    3.1415 ist ein Literal vom Typ double. Die Zuweisung an einen float ist eine Standardkonvertierung und damit legal und implizit möglich.
    Da der Standard nicht festschreibt, wann ein Compiler was zu warnen hat, kann ein Compiler hier problemlos eine Warnung ausspucken oder auch nicht.

    float f = 3.1415f ist auf jeden Fall expliziter, da du hier wirklich ein floating-Point Literal hast.

    Zum Thema Englisch/Deutsch:
    Ich schließe mich da im Großen und Ganzen Bashars Meinung an. Allerdings gebe ich zu bedenken, dass man sich manchmal zwischen (englischem) C++ Jargon und Deutsch entscheiden muss.
    So gibt es in C++ nun mal nur member functions und keine methods. D.h. entweder ich bleibe bei den member functions, ich wechsle zum Denglisch und den Memberfunktionen oder ich verabschiede mich ins allgemeine OO-Jargon und sage Methode.
    Ich persönlich bevorzuge in diesem konkreten Fall in der Tat Denglisch. Generell wohl aber Englisch.
    Die Begriffe, die eine schöne Übersetzungen haben, würde ich auch in Deutsch verwenden bzw. wenn es sich um sowas wie Pointer vs. Zeiger handelt, habe ich auch kein Problem mit einer wechselnden Anwendung. Man kann ja irgendwie sowas wie ein Glossar zum Tutorial hinzufügen.



  • Helium schrieb:

    const definierte variablen

    Das verstehe ich nicht.
    Mit 'const' qualifizierte Variablen?
    Konstanten?

    Wenn man es genau nimmt ist const = konstant z.B. keine besonders gute Übersetzung. const = "nur lesbar" wäre da schon besser.
    Schließlich hat const die Bedeutung von read-only.

    Wogegen konstante Veriablen irgendwie quatsch wäre, da es ziemlich paradox ist.
    

    Nicht wirklich. Variable kommt in der C++ Welt ja nicht von variierbar. Vielmehr ist eine Variable ein benanntes Objekts und damit ein lvalue. Eine const Variable ist ein non-modifiable lvalue.

    Von der Wortbedeutung hast du aber sicher recht.



  • HumeSikkins schrieb:

    So gibt es in C++ nun mal nur member functions und keine methods. D.h. entweder ich bleibe bei den member functions, ich wechsle zum Denglisch und den Memberfunktionen oder ich verabschiede mich ins allgemeine OO-Jargon und sage Methode.

    Eine mögliche deutsche Übersetzung von Memberfunktion wäre Elementfunktion. Ich mag den Begriff allerdings nicht und würde auch Memberfunktion sagen 🙂

    Wenn man es genau nimmt ist const = konstant z.B. keine besonders gute Übersetzung. const = "nur lesbar" wäre da schon besser.
    Schließlich hat const die Bedeutung von read-only.

    Wie ist denn der englische Sprachgebrauch? Danach würde ich gehen. Wenn die sagen 'constant xyz', geht auf deutsch auch 'konstantes xyz'.



  • Wie ist denn der englische Sprachgebrauch? Danach würde ich gehen. Wenn die sagen 'constant xyz', geht auf deutsch auch 'konstantes xyz'.

    Ohne Frage. Ich wollte auch nicht ernsthaft gegen "konstant" argumentieren, nur nochmal auf die eigentliche (Stroustrup'sche) Bedeutung hinweisen.
    Constant variables durch konstante Variablen zu ersetzen ist imo aber völlig ok.
    Vielleicht hätte ich besser ein Paar <klugscheiß>-Markierungen (Tags) verwenden sollen.

    Eine mögliche deutsche Übersetzung von Memberfunktion wäre Elementfunktion

    Ups. An die hatte ich jetzt gar nicht gedacht. Gefällt mir aber auch nicht so wirklich.



  • Werden virtuelle Memberfunktionen (oder wie auch immer ihr es gerne hättet) nicht auch in C++ Methoden genannt?



  • Helium schrieb:

    Werden virtuelle Memberfunktionen (oder wie auch immer ihr es gerne hättet) nicht auch in C++ Methoden genannt?

    Ne. Der C++ Standard kennt nur "member functions" und "(pure) virtual functions", aber keine methods.
    Da virtual bereits member voraussetz, verzichtet man auch auf sowas wie "virtual member function".



  • hmm...für mich sind const definierte variablen nich wirklich konstanten 🙂 ich halte es eher (sehr sehr) einfach ausgedrück für...read-only variablen *gg* aber kommt sicher daher, weil ich C programmiere 😉 und ich #define konstanten lieber mag ;P

    tschööö

    tt



  • Hallo.

    Mir sagt deine Schreibweise überhaupt nicht zu. Den Leser persönlich anzusprechen wirkt wenig professionell und seriös.
    Ebenso finde ich Passagen wie
    "cout repräsentiert ein Ausgabeobjekt. Stell dir dies ersteinmal als eine Kiste vor."
    oder
    "dann sagen wir dem Compiler: hey du! ..."
    recht kindlich und misslungen.

    Es wirkt nicht so als würde viel Know-How dahinter stecken und das könnte einige Leser, die nicht wissen, dass du durchaus was auf dem Kasten hast, abschrecken.

    Gruß, space



  • space schrieb:

    Hallo.

    Mir sagt deine Schreibweise überhaupt nicht zu. Den Leser persönlich anzusprechen wirkt wenig professionell und seriös.
    Ebenso finde ich Passagen wie
    "cout repräsentiert ein Ausgabeobjekt. Stell dir dies ersteinmal als eine Kiste vor."
    oder
    "dann sagen wir dem Compiler: hey du! ..."
    recht kindlich und misslungen.

    Es wirkt nicht so als würde viel Know-How dahinter stecken und das könnte einige Leser, die nicht wissen, dass du durchaus was auf dem Kasten hast, abschrecken.

    Gruß, space

    ich fuehl mich immer bloed, wenn ich mit "Sie" angeredet werde, und ziehe lockere Schreibhaltung einer trockenen 10 mal vor.
    Schau dir doch mal den Stroustrup an: ist vielleicht Inhaltlich absolut top, aber mal ehrlich, es ist das am langweiligsten-geschriebene Buch, das ich kenne. Sowas kann man vielleicht einem erfahrenen Programmierer vorlegen, der die Muse hat, sich da auch durchzuackern. Einen Anfaenger kann man da aber nicht drannlassen (obwohl die Sprache ja von Grund auf erklaert wuerde).
    Besonders bei Tutorials, die ja sowieso fuer Anfaenger ausgelegt sind, ist ein guter, ansprechender und direkter Schreibstil fundemantal und traegt WESENTLICH dazu bei, den Leser bei der Stange zu halten!


Anmelden zum Antworten