Frage zu C++ Reference und anderen Quellen



  • Hallo und guten morgen liebe Gemeinde.

    Ich hätte einmal keine Frage zu einem Programmcode, sondern eher nach Quellen, um sich Infos und Werkzeuge für einen Programmcode zusammenzuholen.

    Beim näheren Betrachten der C++ Reference ist mir aufgefallen, dass die meisten Beispiele in C geschrieben worden sind. Ich verstehe in dem Zusammenhang nicht, warum es dann "C++ Reference" heißt, wenn es wie geschrieben Beispiele aus C gibt.

    Hättet ihr vielleicht Tipps bzw. andere Quellen?

    Gruß Max



  • Eine teilweise bessere Referenz ist cppreference.com.

    Die ist auch aktueller beim Standard.

    Edit: Was ist eigentlich das Problem bei den C-Beispielen? Stört es dich so sehr? Es ist halt auch für C-Programmierer.



  • Sone schrieb:

    Eine teilweise bessere Referenz ist cppreference.com.

    Die ist auch aktueller beim Standard.

    Edit: Was ist eigentlich das Problem bei den C-Beispielen? Stört es dich so sehr? Es ist halt auch für C-Programmierer.

    Wenn ich eines gelernt habe, dann das, dass C und C++ doch zwei unterschiedliche Programmiersprachen sind.

    Oder soll ich von dem Gedanken wieder weg kommen?



  • Wenn ich eines gelernt habe, dann das, dass C und C++ doch zwei unterschiedliche Programmiersprachen sind.

    Das ist vollkommen richtig. 👍
    Jedoch besteht die C++-Standardbibliothek teilweise noch aus der alten, fast komplett makellos übernommenen C-Standardbibliothek.

    Deswegen schlagen vielleicht auch mal C-Programmierer dort nach.

    Edit: Eigentlich hast du schon Recht.



  • Wo werden da Beispiele in C geschrieben?



  • manni66 schrieb:

    Wo werden da Beispiele in C geschrieben?

    Du brauchst dir nur die nächstbeste Funktion aus der C-Standardbibliothek anzusehen.

    Bspw. http://www.cplusplus.com/reference/cctype/isdigit/


  • Mod

    manni66 schrieb:

    Wo werden da Beispiele in C geschrieben?

    Die Beispiele zu den Funktionen der C-Standardbibliothek lassen sich auch mit einem C-Compiler übersetzen. Jedoch sind sie so gestellt, dass man auch einen C++-Compiler nutzen kann, an den Stellen, an denen es sonst eigentlich einen Unterschied machen würde.



  • Warum sollte in der C Standardbibliothek kein C Code auftauchen?
    Das C++ Beispiel für isdigit ist auch in C++
    http://www.cplusplus.com/reference/locale/isdigit/



  • manni66 schrieb:

    Wo werden da Beispiele in C geschrieben?

    Ich habe z. B. die Funktion strncpy angeschaut.

    Folgender Code ist per copy und paste von dieser Seite hier: http://www.cplusplus.com/reference/cstring/strncpy/

    /* strncpy example */
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char str1[]= "To be or not to be";
      char str2[40];
      char str3[40];
    
      /* copy to sized buffer (overflow safe): */
      strncpy ( str2, str1, sizeof(str2) );
    
      /* partial copy (only 5 chars): */
      strncpy ( str3, str2, 5 );
      str3[5] = '\0';   /* null character manually added */
    
      puts (str1);
      puts (str2);
      puts (str3);
    
      return 0;
    }
    

    Sone schrieb:

    Jedoch besteht die C++-Standardbibliothek teilweise noch aus der alten, fast komplett makellos übernommenen C-Standardbibliothek.

    Also sprich, ich könnte alles, was in C möglich ist, auch in C++ machen?? Ich muss es nur schaffen, die Beispiele auf http://en.cppreference.com/w/ und http://www.cplusplus.com/reference/ auf C++ zu transfermieren?



  • Warum sollte man strcpy in C++ benutzen?



  • silent_max schrieb:

    manni66 schrieb:

    Wo werden da Beispiele in C geschrieben?

    Ich habe z. B. die Funktion strncpy angeschaut.

    Das ist ja auch eine C-Funktion! In C++ würde man doch von vornherein

    char str1[]= "To be or not to be";
      char str2[40];
      char str3[40];
    

    vermeiden und stattdessen

    std::string str1 = "To be or not to be";
      std::string str2;
      std::string str3;
    

    nehmen, wo immer es möglich ist!



  • manni66 schrieb:

    Warum sollte man strcpy in C++ benutzen?

    Manni, es war nur ein Beispiel von vielen...



  • Dass zur Erläuterung der C-Funktionen Beispiele in C geschrieben sind, finde ich nun aber nicht sonderlich überraschend!



  • Das hier z. Bsp. habe ich gesucht:

    http://en.cppreference.com/w/cpp/utility/functional

    Eine Erläuterung von C++ Funktionen



  • silent_max schrieb:

    manni66 schrieb:

    Warum sollte man strcpy in C++ benutzen?

    Manni, es war nur ein Beispiel von vielen...

    Ja. Wenn du ein C Beispiel in der Referenz siehst, bist du vermutlich an der falschen Stelle, und solltest nach C++ suchen!



  • silent_max schrieb:

    Das hier z. Bsp. habe ich gesucht:

    http://en.cppreference.com/w/cpp/utility/functional

    Eine Erläuterung von C++ Funktionen

    Das erläutert kein Funktionen. Wenn du eine Erläuterung zu Funktionen brauchst, musst du ein C++ Lehrbuch verwenden aber sicher keine Referenz!



  • manni66 schrieb:

    Das erläutert kein Funktionen. Wenn du eine Erläuterung zu Funktionen brauchst, musst du ein C++ Lehrbuch verwenden aber sicher keine Referenz!

    Glaubst Du, dass ein C++ Lehrbuch auslangt?



  • silent_max schrieb:

    manni66 schrieb:

    Das erläutert kein Funktionen. Wenn du eine Erläuterung zu Funktionen brauchst, musst du ein C++ Lehrbuch verwenden aber sicher keine Referenz!

    Glaubst Du, dass ein C++ Lehrbuch auslangt?

    Wenn es gut ist und man es liest. ⚠



  • Sone schrieb:

    Wenn es gut ist und man es liest. ⚠

    Wenn man es durcharbeitet.
    Das ist ein Lehrbuch. Zum lernen, nicht nur für schöne Gedanken.



  • DirkB schrieb:

    Sone schrieb:

    Wenn es gut ist und man es liest. ⚠

    Wenn man es durcharbeitet.

    🙄



  • silent_max schrieb:

    Also sprich, ich könnte alles, was in C möglich ist, auch in C++ machen?? Ich muss es nur schaffen, die Beispiele auf http://en.cppreference.com/w/ und http://www.cplusplus.com/reference/ auf C++ zu transfermieren?

    Korrekt, du brauchst nichtmal was transferieren. C++ ist eine Erweiterung von C, hieß auch mal C mit Klassen. Es gibt die Ausnahme mit dem impliziten Cast von void * auf einen beliebigen Pointer was in C geht und in C++ nicht, aber ansonsten geht alles in C++ genauso wie in C.
    Allerdings hat C++ versucht bessere oder zumindest andere Möglichkeiten bereit zu stellen, sodass es häufig zwei Möglichkeiten gibt. char * vs std::string, x[] vs std::vector<x>, printf vs std::cout, malloc/free vs new/delete ....
    Nicht immer sind die C++-Varianten besser. Häufig wird es aber als schlechten Stil angesehen wenn man die Varianten mischt und Leute wie Sone regt es maßlos auf wenn man im C++-Forum was mit printf schreibt, obwohl es korrektes C++ ist.
    Du solltest für dich entscheiden, ob du strikt C++ machen willst, alla "C ist Teufelszeug" oder auch die C-Funktionen nutzen willst. Wenn du reines C++ willst, was keine schlechte Idee ist, dann solltest du #includes, die mit .h enden oder mit c anfangen eher meiden (gibt sicher Ausnahmen).

    *wartet auf Sones gepolter* :trollface:


Anmelden zum Antworten