Die meistgestellten Fragen



  • ich las gerade

    fStr.read(reinterpret_cast<char*>(&ulNummer), sizeof(unsigned long)); // C++ 
    // und nicht: 
    // fStr.read((char*)&ulNummer), sizeof(unsigned long)); // C
    

    warum sollte das so sein?

    abgesehen von

    fStr.read((char*)&ulNummer, sizeof(ulNummer));
    

    , denn man will den typ ja auch mal ändern dürfen.

    es wäre viel besser, wenn es auch begründungen zu den vorschlägen geben würde. dann kann man sich die tipps besser merken. dann kann man auch besser dran glauben und es ist nicht der tausendste style-guide.



  • CStoll schrieb:

    Zu Punkt 6 könntest du eventuell noch einen Link auf meinen Strings-Artikel einfügen

    Done. Danke für den Hinweis.

    und wenn du Tip 3 beachtest, solltest du zumindest <cstring> erwähnen.

    Was meinst du?

    Nochmal zu Tip 3: Die "alten" C-Header <stdio.h> etc existieren im C++ Standard übrigens weiterhin - parallel zu den C++ Wrapper-Headern <cstdio> etc.

    Ergänzt.



  • volkard schrieb:

    man auch besser dran glauben und es ist nicht der tausendste style-guide.

    Hast du was gegen (guten) Coding-Style ? Daraus resultiert in der Regel nämlich eine bessere Lesbarkeit des Quellcodes 💡 .



  • Michael E. schrieb:

    und wenn du Tip 3 beachtest, solltest du zumindest <cstring> erwähnen.

    Was meinst du?

    Auf der einen Seite erklärst du, daß die C-Header (dazu gehört auch <string.h> - die moderne Version ist <cstring>) veraltet sind, auf der anderen Seite verwendest du diesen veralteten Header zur Gegenüberstellung gegen <string>.



  • CStoll: Geändert.

    volkard: Hab dich nicht vergessen, werd heut Abend ne Begründung schreiben.



  • CodeFinder schrieb:

    volkard schrieb:

    man auch besser dran glauben und es ist nicht der tausendste style-guide.

    Hast du was gegen (guten) Coding-Style ? Daraus resultiert in der Regel nämlich eine bessere Lesbarkeit des Quellcodes 💡 .

    Definiere "guten Coding-Style". IMHO koennte es sich herausstellen, dass es
    sich dabei um geschmackssache handelt.

    gruss
    v R



  • CodeFinder schrieb:

    volkard schrieb:

    man auch besser dran glauben und es ist nicht der tausendste style-guide.

    Hast du was gegen (guten) Coding-Style ? Daraus resultiert in der Regel nämlich eine bessere Lesbarkeit des Quellcodes 💡 .

    was ist "gut"? letztendlich doch etwas, was den code gut macht.
    da gibt es aber so viele falsche profeten, daß einem ganz schlecht wird.
    deswegen lehne ich jeden style-guide ab, in dem nicht jede regel verständlich begründet wird.
    normalerweise isses aber zig-mal besser, den hackern einfach "effektiv c++ programmieren" zu kaufen. einsicht statt unverstandene (und zum großen teil schlechte) regeln brint's.



  • volkard schrieb:

    da gibt es aber so viele falsche profeten, daß einem ganz schlecht wird.

    Da wird mir schlecht, neue Rechtschreibung hin oder her, Profet sieht einfach grauslig aus. (Sry OT)

    MMn sollte man keine C-Style Casts verwenden, nicht nur aus styling Gründen.



  • Artchi schrieb:

    Also, wenn das HelloWorld schon nicht ISO-konform ist, warum sollten die nachfolgenden Kapitel über strings, filestreams usw. ISO-konform sein? 😕

    Es ist wahrscheinlich, das das Buch noch vor 1998 geschrieben wurde oder wenn es aktueller ist, der Autor irgendwie die C++-Welt und alles andere verpennt hat. Egal wie, das Buch/Tutorial werden dem C++-Greenhorn der etwas lernen will, nicht groß behilflich sein.

    ISO-konform != gut. Man kann C++ auch sehr gut lehren ohne vollständig ISO-konform zu sein (siehe volkards C++-Kurs)

    MfG SideWinder



  • THX 1138 schrieb:

    volkard schrieb:

    da gibt es aber so viele falsche profeten, daß einem ganz schlecht wird.

    Da wird mir schlecht, neue Rechtschreibung hin oder her, Profet sieht einfach grauslig aus. (Sry OT)

    Gut das wir es jetzt wissen...

    MMn sollte man keine C-Style Casts verwenden, nicht nur aus styling Gründen.

    Das ist immer noch keine Begruendung.

    gruss
    v R



  • Hallo liebe Foren Mitglieder,
    bei F0 bis F14 handelt es sich um eine int Variable.
    Bei LTB handelt es sich um ein Label. Dieses Label befindet sich auf einer anderen Form.
    Hat jemand eine Idee, wie dieser Code kompakter mit einer Schleife und einer Laufvariablen für F und LTB geschrieben werden kann?
    Vielen Dank für eure Hilfe. 🙂

    Borland C++ Builder 5

    int F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14;

    F0 = StrToInt(Form1->LTB0 ->Caption);
    F1 = StrToInt(Form1->LTB1 ->Caption);
    F2 = StrToInt(Form1->LTB2 ->Caption);
    F3 = StrToInt(Form1->LTB3 ->Caption);
    F4 = StrToInt(Form1->LTB4 ->Caption);
    F5 = StrToInt(Form1->LTB5 ->Caption);
    F6 = StrToInt(Form1->LTB6 ->Caption);
    F7 = StrToInt(Form1->LTB7 ->Caption);
    F8 = StrToInt(Form1->LTB8 ->Caption);
    F9 = StrToInt(Form1->LTB9 ->Caption);
    F10 = StrToInt(Form1->LTB10->Caption);
    F11 = StrToInt(Form1->LTB11->Caption);
    F12 = StrToInt(Form1->LTB12->Caption);
    F13 = StrToInt(Form1->LTB13->Caption);
    F14 = StrToInt(Form1->LTB14->Caption);



  • Hallo

    Falscher Thread und falsches Forum. Sonst arrays oder besser vector.

    chrische



  • was kann man mit static_cast<int>(x) machen und wie funktioniert das kann mir das villeicht irgendjemand erklären das wäre sau nett

    schon mal danke im voraus 🙂



  • Hallo

    @ daktari : Siehe die FAQ des Borland Builder Subforums. Dort gibt es einen Abschnitt "Komponenten benutzen", der genau das erklärt.
    @ yanke23 : Siehe hier.

    bis bald
    akari



  • Kurz: Du kannst einen Wert umwandeln in eine Ganzzahl.

    Lang: In C++ gibt es ein ganzes Sortiment von Cast-Operatoren (Typumwandlung):

    • static_cast<T>(x) - explizite Typumwandlung
    • dynamic_cast<T>(x) - Downcasts für polymorphe Typen (Pointer oder Referenzen)
    • const_cast<T>(x) - um die const'nes von Objekten zu entfernen
      (da solltest du besser dreimal nachdenken, bevor du es verwendest)
    • reinterpret_cast<T>(x) - Uminterpretation auf Bit-Ebene
    • (T)x oder T(x) - C-Stil Cast bzw. Funktion-Stil Cast
      (können je nach Situation static_cast, const_cast oder reinterpret_cast darstellen)

    Wie genau der Compiler das umsetzt, hängt von den verwendeten Datentypen ab. Aber in der Regel wird er eine passende Typumwandlung suchen, mit der er dein x als int-Wert lesen kann (was das ist, hängt im wesentlichen davon ab, wie x definiert ist).

    PS: Bei Fragen darfst du gerne einen eigenen Beitrag eröffnen.



  • also ich kann auch eine dezimal zahl in den ascii code umwandeln also das geht aber wie macht der befehl das



  • yanke23 schrieb:

    also ich kann auch eine dezimal zahl in den ascii code umwandeln also das geht aber wie macht der befehl das

    char ist auch nur ein Ganzzahltyp, mit dem C++ problemlos rechnen kann. Der Trick dabei ist, daß die Ein-/Ausgabe einen char als ASCII-Zeichen darstellen kann.



  • Mal etwas zu dem ersten Punkt gesagt: Ich finde es garnicht so schwer eine richtige Oberfläche zu programmieren. Dies ist mein 3 Tag, in dem ich mich mit C/C++ beschäfftige und ich habe es geschafft eine Oberfläche zu erstellen. Gut, ich weis noch nicht, was z.B.
    wcx.cbClsExtra = 0;
    heißt. Aber was bringt mir das. Ich kann meine Oberfläche mit meinem Quelltext in größe, aussehen und Beschriftung ändern. Und das reicht mir. Mein Informatiklehrer hat mir einmal gesagt: man muss nicht alles Programmieren können. Man muss nur wissen wo es steht!
    Ich finde diesen Spruch wirklich richtig. (bei z.B. Microsoft Words muss man doch auch nicht wissen, wie man einen zeilenvorschub hinbekommt, wenn man das erste mal mit ihm umgeht. Es reicht voll und ganz ein programm aufrufen zu können etwas reinzuschreiben und es zu speichern. Wenn man später etwas braucht kann man es dann natürlich noch suchen! Eine richtige Arbeitserleichterung!



  • raubritter schrieb:

    Mal etwas zu dem ersten Punkt gesagt: Ich finde es garnicht so schwer eine richtige Oberfläche zu programmieren. Dies ist mein 3 Tag, in dem ich mich mit C/C++ beschäfftige und ich habe es geschafft eine Oberfläche zu erstellen. Gut, ich weis noch nicht, was z.B.
    wcx.cbClsExtra = 0;
    heißt. Aber was bringt mir das. Ich kann meine Oberfläche mit meinem Quelltext in größe, aussehen und Beschriftung ändern. Und das reicht mir. Mein Informatiklehrer hat mir einmal gesagt: man muss nicht alles Programmieren können. Man muss nur wissen wo es steht!
    Ich finde diesen Spruch wirklich richtig. (bei z.B. Microsoft Words muss man doch auch nicht wissen, wie man einen zeilenvorschub hinbekommt, wenn man das erste mal mit ihm umgeht. Es reicht voll und ganz ein programm aufrufen zu können etwas reinzuschreiben und es zu speichern. Wenn man später etwas braucht kann man es dann natürlich noch suchen! Eine richtige Arbeitserleichterung!

    Vielleicht kannst du eine Oberfläche erstellen, aber es birgt drei Nachteile:
    1.) Du benutzt WinAPI. Das ist C und plattformabhängig.
    2.) Früher oder später werden deine Programme einfach so abstürzen. Und du wirst nicht wissen warum, glaub mir.
    3.) Wir sollen dir dann dabei helfen 😃

    mfg.



  • hat jemand so ne art erklärung des objektinspektors...?
    also wo kurz aufgeführt ist was bei welcher einstellung passiert


Anmelden zum Antworten