Die meistgestellten Fragen



  • joomoo schrieb:

    .filmor schrieb:

    @joomoo Hast du da ein Beispiel aus diesem Forum für?

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-150600-and-postdays-is-0-and-postorder-is-asc-and-start-is-20.html
    gab's noch mehr, nur finde ich jetzt nicht auf die schnelle.

    Ok, du hast wohl recht.

    joomoo schrieb:

    Obwohl ich persönlich nicht zu den Leuten gehöre, höre ich hier des öfteren das Dev-C++ totaler schrott sein soll, deswegen ist es doch nicht schlecht einem Anfänger schon gleich ne ordentlich IDE zu geben, oder?

    Ich hatte mit Dev-C++ nie wirklich Probleme. Wer meint, dass müsse man demjenigen sagen kann das ja tun, wenn der betreffende fragt.

    joomoo schrieb:

    Ich mein: Was spricht denn dagegen den Visual-C++-6-Leuten den neuen 2005er zu empfehlen? Wird hier sowieso sehr oft getan, dann schreiben wir's dazu, oder?

    Aber meistens wirds da dazu geschrieben, wo es auch passt, nämlich wenn ein Compilerfehler auftritt, der von dem miesen VC6-Compiler herrührt. Diese Fälle sind aber AFAIK (ich benutze schon immer gcc) nicht das, was einem C++-Anfänger direkt vor der Nase rumspringt. Wenn er bei Metaprogrammierung angekommen ist hat er denke ich genug Verständnis dafür, welchen Compiler er nehmen sollte.

    joomoo schrieb:

    Ich denke, ein klein bisschen Denken kann man auch von Anfängern erwarten.

    Wenn du noch nie programmiert hast, ist es erstmal frustierend, dass du schon drei Zeilen, die du 0 verstehst, an die richtige stelle tun sollst, nur damit ein "Hallo Welt" funktioniert. Außerdem muss man das gleiche ja denn bei nem return in main oder einem exit/abort wieder davor packen.

    Die drei Zeilen werden in dem Artikel aber sinnvoll in eine Funktion gepackt, die dann sehr leicht verständlich ist.

    Tuxinator schrieb:

    gut, und nun erkläre den anfängern noch klassen und kapselung 😉

    !(OOP == C++) :p



  • Vielleicht noch "Einmal Zahl nach String und zurück" (http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html).
    Steht zwar in den FAQs auf der ersten Seite, es kommen aber trotzdem regelmäßig Fragen zu dem Thema.
    Manchmal frage ich mich, ob überhaupt jemand in die FAQs schaut...

    .filmor schrieb:

    Ich denke, ein klein bisschen Denken kann man auch von Anfängern erwarten.

    👍



  • es geht hier um c++,gell?

    Vergiss es. Solange du die Grundlagen nicht kannst (und zu den Grundlagen gehört mehr als schon mal ne Klasse erstellt zu haben!), hat es keinen Sinn, sich mit Oberflächen zu beschäftigen.



  • Tuxinator schrieb:

    es geht hier um c++,gell?

    Vergiss es. Solange du die Grundlagen nicht kannst (und zu den Grundlagen gehört mehr als schon mal ne Klasse erstellt zu haben!), hat es keinen Sinn, sich mit Oberflächen zu beschäftigen.

    Ja genau, und deshalb sind Klassen fundamental, also überdenke deinen Beitrag besser nochmal.



  • Tuxinator schrieb:

    es geht hier um c++,gell?

    Vergiss es. Solange du die Grundlagen nicht kannst (und zu den Grundlagen gehört mehr als schon mal ne Klasse erstellt zu haben!), hat es keinen Sinn, sich mit Oberflächen zu beschäftigen.

    Jap.

    Ich guck mal, was ich noch hinzufüge/entferne. Mein Ziel ist es nämlich nicht, eine große Sammlung zu erstellen, in dem möglichst viele häufig gestellte Fragen beantwortet werden (dafür sind schließlich die FAQ da), sondern einen kleinen Text zu schreiben, der wenn möglich nur das Wichtigste enthält.

    Alle Änderungen nehm ich im OP vor.



  • IMHO solltest du, wenn du das schon machst, vllt. die Top 10 der meistgestellten Fragen rausfinden und in einem Post mit den entsprechenden Einträgen der FAQ verlinken, also:

    1. Warum verschwindet mein Konsolenfenster sofort?
      ...


  • .filmor schrieb:

    Die drei Zeilen werden in dem Artikel aber sinnvoll in eine Funktion gepackt, die dann sehr leicht verständlich ist.

    Was wenn der Anfänger noch nicht (eigene) Funktionen gehabt hat? Ich seh hier meistens nur Leute die cin.get() und system("PAUSE") benutzen, und das wahrscheinlich auch deswegen, weil ihnen der Code aus der FAQ nicht ganz klar wird. Die Funktion wait() muss ja noch in der main-Funktion aufgerufen werden (und zwar vor return, wer noch keine Funktionen hat, weiß das vielleicht auch nicht).
    Auch finde ich es total lästig, immer ein wait() an allen meinen programm-abbrüchen einzufügen. Und bei einem assert oder /0 bringst ja dann sowieso nichts mehr.
    Deswegen: Was spricht denn dagegen? Man könnte diese IDE-Tipps ja nur als Empfehlung hinschreiben und nichts als zwingende Aufforderung.

    mfg.



  • Zu Punkt 6: IMHO müsste es heissen "Die Standardbibliothek arbeitet mit const char*", jedenfalls in dem Zusammenhang.



  • Hallo

    Michael E. schrieb:

    void main()
    // ersetzen durch:
    int main()
    
    #include <iostream.h>
    // ersetzen durch:
    #include <iostream>
    using namespace std;	// analog dazu: <string.h> -> <string>
    
    #include <stdio.h>
    // ersetzen durch:
    #include <cstdio>
    using namespace std;	// analog dazu: assert.h, ctype.h, locale.h, time.h, math.h und weitere
    

    <string.h> wird doch aber nicht zu <string>, sondern zu <cstring>.

    chrische



  • Hm, ich würd's sinnvoller finden (wegen redundanz u. übersichtlichkeit), wen man im C++-Froum soetwas wie einen "Indexthread" zum FAQ sticky macht in welchem man für bestimmte Probleme auf den/die passende(n) FAQ Threads verweist. Dann würde man sich nämlich die Posts sparen, in denen wieder 'mal jemand meint, er habe in der FAQ gesucht und gesucht und doch nix gefunden (obwohl der Rest der Welt weiß, daß dort steht was er sucht).

    Greetz, Swordfish

    @chrische: mein ich auch!!



  • Swordfish schrieb:

    Hm, ich würd's sinnvoller finden (wegen redundanz u. übersichtlichkeit), wen man im C++-Froum soetwas wie einen "Indexthread" zum FAQ sticky macht in welchem man für bestimmte Probleme auf den/die passende(n) FAQ Threads verweist. Dann würde man sich nämlich die Posts sparen, in denen wieder 'mal jemand meint, er habe in der FAQ gesucht und gesucht und doch nix gefunden (obwohl der Rest der Welt weiß, daß dort steht was er sucht).

    Greetz, Swordfish

    @chrische: mein ich auch!!

    stiime zu. man kann ja abwägen: wenn die frage in einer zeile zu beantworten ist, kann man sie hier beantworten, sonst nimmt man einen link.



  • Hab noch ne Idee bzgl. des eigentlichen Themas, dieses Threads:

    8. C nicht mit C++ vermischen:

    Beispiel a) Casts:

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

    Beispiel b) File Handling:

    // Filestreams statt FILE-Structs
    fstream fStr(...); // C++
    // und nicht:
    // FILE *pFile; // C
    

    Beispiel c) Speicherreservierung:

    // new statt malloc und Kohorten
    Typ* tName= new Typ[Anzahl]; // C++
    // und nicht:
    // Typ* tName = (Typ*)malloc(Anzahl * sizeof(Typ)); // C
    

    oder findet ihrs nit so wichtig...? -> Feedback please 😉

    Edit: @camper, gute Idee! 👍 ...bzgl. der Ptr is mir nur nix anderes eingefallen 🙄



  • CodeFinder schrieb:

    Hab noch ne Idee bzgl. des eigentlichen Themas, dieses Threads:

    8. C nicht mit C++ vermischen:

    Beispiel a) Casts:

    int i;
    long l = 2344234;
    i = static_cast<int>(l); // C++
    // und nicht:
    // i = (int)l; // C
    

    Beispiel b) File Handling:

    // Filestreams statt FILE-Structs
    fstream fStr(...); // C++
    // und nicht:
    // FILE *pFile; // C
    

    oder findet ihrs nit so wichtig...? -> Feedback please 😉

    gute idee. dann darf auch malloc(und konsorten)->new nicht fehlen.

    edit: bei den C-casts besser ein weniger kontroverses beispiel (also irgendwas was leicht ins auge geht, am besten mit pointern) wählen.



  • Jo!, done! 😉



  • jo, ist ok. da kannst du bei dem beispiel ja gleich punkt a) und b) zusammenführen 🙂 oder gleich alle 3 😃

    edit: übrigens:

    Typ* tName = (Typ*)malloc(Anzahl[b]*sizeof(Typ)[/b]);
    

    was gleich als eine begründung herhalten kann :p



  • camper schrieb:

    edit: übrigens:

    Typ* tName = (Typ*)malloc(Anzahl[b]*sizeof(Typ)[/b]);
    

    was gleich als eine begründung herhalten kann :p

    Hähä^^, jo stimmt 🤡



  • frage an die moderatoren: besteht eine chance, diesen tread sticky zu machen, oder soller in der versenkung verschwinden?



  • Ich bin dafür, dass noch en bisschen gesammelt/überarbeitet wird und schließlich alles in einem Post zusammengefasst wird.



  • camper schrieb:

    frage an die moderatoren: besteht eine chance, diesen tread sticky zu machen, oder soller in der versenkung verschwinden?

    Imo wird er so oder so in der Versenkung verschwinden. Entweder im wörtlichen Sinne, oder er wird, so wie die FAQs, schlicht ignoriert.

    Aber versuchen wir es...

    Ich bin dafür, dass noch en bisschen gesammelt/überarbeitet wird und schließlich alles in einem Post zusammengefasst wird.

    Ich pinne den Thread jetzt erstmal fest, dass macht das Sammeln leichter. Eine spätere Zusammenfassung scheint mir aber ebenfalls sinnvoll zu sein.



  • HumeSikkins schrieb:

    camper schrieb:

    frage an die moderatoren: besteht eine chance, diesen tread sticky zu machen, oder soller in der versenkung verschwinden?

    Imo wird er so oder so in der Versenkung verschwinden. Entweder im wörtlichen Sinne, oder er wird, so wie die FAQs, schlicht ignoriert.

    das bestimmt. aber ein sticky ist leichter wiederzufinden, wenn man einen link posten will, weil mal wieder ignoriert wurde 🙂
    ob hier irgendwann ein neuere thread gebraucht wird ist nicht so klar. ein einfaches updaten des originalen beitrags sollte doch genügen. die thematik selbst ist ja auch nicht in sich abgeschlossen.


Gesperrt