Statistik



  • kaenon schrieb:

    Wo gibt es eigentlich gute C-Tutorials?

    In Büchereien.
    Die haben so viele davon, dass sie diese sogar verkaufen.
    (Aber nicht jedes dort ist gut)



  • Fehlerfreie C Tutorials gibt es sehr selten.
    Alle Funktionsprototypen (explizite Funktionsdeklarationen) gehören in eine Headerdatei, ebenso wie eigene Typdefinitionen (typedef).
    C oder C++, das hängt von deinem Aufgabenbereich ab; C geht sehr viel mehr in die Tiefe, es gibt mehr Fallstricke. Das liegt daran, dass C von Profis für Profis entwickelt wurde, was auf C++ nicht zutrifft. C ist also prinzipiell nichts für Anfänger, die nur schnell eben mal was programieren wollen/sollen.



  • Also ist für den schnellen Erfolg C++ besser geeignet?



  • Deshalb habe ich gesagt "hängt ab von deinem Aufgabenbereich";
    wenn es dir nur darum geht, mal schnell irgendwelche Strings zusammenzubasteln oder mit cout irgendwas auf die Konsole zu bringen, wird es mit C++ schneller gehen, dann aber bitte nicht jammern wenn du merkst, dass dieses Geraffel oftmals viel mehr Code erfordert als sscanf/sprintf.
    Wenn du darauf angewiesen bist, bestehende C-Bibliotheken zu benutzen (WinAPI, u.v.a.m), hast du von vornherein verloren, wenn du nur mit C++ Brille diese Bibliotheken versuchst zu bedienen, bspw. den Unterschied zw. Array und Zeiger oder automatic/static storage duration nicht kennst.


  • Mod

    kaenon schrieb:

    Also ist für den schnellen Erfolg C++ besser geeignet?

    Nein, C++ ist eher noch weniger für Anfänger geeignet. Man sagt: "In C ist es leicht, sich selber in den Fuß zu schießen. In C++ ist es schwerer, aber wenn man es tut, dann ist gleich das ganze Bein ab". Diese Beschreibung trifft es ziemlich gut. In C++ musst du nicht kämpfen, um ein paar popelige Ausgaben zu machen oder Zeichenketten zu verarbeiten. Aber die Sprache ist ungleich umfangreicher als C. Man kann C komplett in ein paar Tagen bis Wochen lernen. Für C++ muss man ein paar Monate einplanen. Ganz zu schweigen von weiterer Lernzeit, um zu lernen, wie man "gutes" C++ schreibt (was allerdings auch in C der Fall ist), denn bloß weil etwas geht, heißt das noch lange nicht, dass es eine gute Idee ist.

    Beide Sprachen sind nicht an Anfänger gerichtet, sondern an Profis. Wenn du damit Programmieren an sich lernen möchtest, dann mach dich darauf gefasst, dass das nicht ganz einfach wird (Ist aber möglich und haben schon viele Leute gemacht). Die Wahl der Sprache hängt davon ab, was man später damit machen möchte. C++ wird vor allem für Programme benutzt, bei denen hohe Rechenleistung eine Rolle spielt. C eigentlich auch, bloß dass es halt weniger mächtig ist. Ehrlich gesagt ist der einzige Grund, der mir einfällt, wieso man als Normalsterblicher heutzutage noch C brauchen könnte, dass es eine Menge C-Code auf der Welt gibt und man eventuell mit diesem arbeiten möchte.



  • Ehrlich gesagt ist der einzige Grund, der mir einfällt, wieso man als Normalsterblicher heutzutage noch C brauchen könnte, dass es eine Menge C-Code auf der Welt gibt und man eventuell mit diesem arbeiten möchte.

    Naja, ganz so ist es auch nicht glaub ich. Z.B.: Sind die gängigen Industrieroboter Programmiersprachen alle auf C basiert. Ok, Pointer wurden "zum glück" weggelassen 🙂



  • By the Way... Wer kennt ein wirklich gutes Tutorial für C++ ?? Die meisten sind ja eher unterirdisch.....


  • Mod

    weltmeiser_2014 schrieb:

    By the Way... Wer kennt ein wirklich gutes Tutorial für C++ ?? Die meisten sind ja eher unterirdisch.....

    Bis jetzt hat sich noch nie ein gutes Tutorial für C++ in diesem Forum gezeigt. Ich wäre eher überrascht, wenn plötzlich eines auftauchen würde. Ist ja auch nachvollziehbar: Wenn man sich hinreichend gut auskennt und es didaktisch drauf hat und den Wunsch verspürt, Anfängern zu helfen, dann schreibt man eher ein Buch, als ein Tutorial. Tutorials sind gut, um kurze Sachverhalte darzustellen. Für eine Sprache wie C++, bei deren Umfang selbst knappe(!) Anfängerbücher locker 1000 Seiten und mehr haben, ist das Medium eher ungeeignet. Es gibt ja auch keine (guten) Latein-Tutorials 😉 .



  • Wutz schrieb:

    Das liegt daran, dass C von Profis für Profis entwickelt wurde, was auf C++ nicht zutrifft.

    warum nicht?
    😕



  • C++ wurde über viele Jahre von einem Theoretiker mit skandinavisch klingendem Namen im stillen Kämmerlein entwickelt, ohne Ahnung von Praxis (viel kann er mit seinen wahrhaften Pratiker-Kollegen an den Bell Labs K&R,Ken Thompson,Rob Pike NICHT geredet haben), sonst wäre ihm beim Design seiner 'neuen modernen' Programmiersprache nicht soviel Unsinn 'eingefallen',
    (Auflistung beliebig erweiterbar)
    - virtual
    - friend
    - protected
    - fehlender baseclass-Zugriff
    - den ganzen Cast-Müll, der auch noch im Rahmen von 'Typsicherheit' verkauft wird
    - Konstruktor ohne Rückgabe (wenn ein Return sinnvoll ist, dann genau in diesem Fall nämlich zur Rückgabe der neuen Instanz)
    - B.S. hat nie eine Referenzimplementierung eines C++ Compilers angeboten, d.h. er hat nie irgendwas Praktikables angestellt mit 'seiner' neuen Programmiersprache, so wie die 4 o.g. Herrn, die nicht nur eigene Compiler für ihre Sprache entwickelt haben, sondern den Compiler auch in der Praxis eingesetzt haben für komplexe Anwendungen wie Betriebssysteme
    u.v.a.m.
    B.S. verdient sein Geld mittlerweile (passenderweise) als Professor irgendwo in Texas und lässt sich dort wahrscheinlich von den Erstsemestern bejubeln.



  • Bis jetzt hat sich noch nie ein gutes Tutorial für C++ in diesem Forum gezeigt. Ich wäre eher überrascht, wenn plötzlich eines auftauchen würde. Ist ja auch nachvollziehbar: Wenn man sich hinreichend gut auskennt und es didaktisch drauf hat und den Wunsch verspürt, Anfängern zu helfen, dann schreibt man eher ein Buch, als ein Tutorial. Tutorials sind gut, um kurze Sachverhalte darzustellen. Für eine Sprache wie C++, bei deren Umfang selbst knappe(!) Anfängerbücher locker 1000 Seiten und mehr haben, ist das Medium eher ungeeignet.

    Ja, das leuchtet schon ein. Dachte an eine Art "Tutorial" wenn man schon ein paar Programmiersprachen kann und dann ein ibsschen in C++ reinschnuppern will.
    Werd dann wohl weitersuchen , evtl. finde ich ja mal was



  • @Wutz: bist du ein C-Profi?



  • Ich halte FAQs und Referenzen auch wertvoller als Tutorials.



  • questionmark schrieb:

    @Wutz: bist du ein C-Profi?

    Wikipedia schrieb:

    Ein Profi, Kurzwort von veraltend Professionist, ist jemand, der im Gegensatz zum Amateur oder Dilettanten eine Tätigkeit beruflich oder zum Erwerb des eigenen Lebensunterhalts als Erwerbstätigkeit ausübt.

    Leider arbeiten auch Dilettanten beruflich mit C.
    Der Rest sind Erwartungen an den Profi, keine gesicherten Eigenschaften.

    Allerdings gibt es ja noch den Experten

    😉



  • Wutz schrieb:

    C++ wurde über viele Jahre von einem Theoretiker mit skandinavisch klingendem Namen im stillen Kämmerlein entwickelt, ohne Ahnung von Praxis (viel kann er mit seinen wahrhaften Pratiker-Kollegen an den Bell Labs K&R,Ken Thompson,Rob Pike NICHT geredet haben), sonst wäre ihm beim Design seiner 'neuen modernen' Programmiersprache nicht soviel Unsinn 'eingefallen',

    Wutz, du verzapfst ziemlichen Unfug.
    Ist doch nicht schlimm, dass du C++ nicht verstehst. Und ehe du das Gegenteil behauptest: in deinen letzten Threads im C++-Forum gibst du nutzlose und sogar falsche Tipps, z.B. hier.

    Kleine C++-Lektion für dich: Wenn du Objekte in STL-Containern speicherst, werden sie kopiert (was glaubst du, warum es das ganze Allokator-Gedöhns gibt?). Erst dann kannst du evtl. eine Referenz auf die Objekte nehmen (was aber i.A. nicht zu empfehlen ist, da nicht alle Container garantieren, dass Zeiger/Referenzen auf Elemente nach Einfüge- und Löschoperationen noch gültig sind). Zeiger (sofern sie nicht besitzend sind) oder unique_ptr/shared_ptr (je nach benötigter Semantik) bzw. Boost-ptr-container sind da der richtige Weg.

    Auch sonst suggerierst du dauernd in deinen C++-Threads, dass man Zeiger und Referenzen in C++ beliebig tauschen kann. Das stimmt nicht, Zeiger und Referenzen haben unterschiedliche Semantiken, insbesondere als Klassenmember sind Referenzen mehr als ungeeignet (im Gegensatz zu Zeigern, sofern die Besitzverhältnisse geklärt sind).

    Aber aus Frust musst du deshalb noch lange nicht andere Leute verunglimpfen bzw. als unfähig bezeichnen, denn unfähig bist vor allem erst einmal du, der die Grundlagen nicht versteht.

    Wutz schrieb:

    Wenn du darauf angewiesen bist, bestehende C-Bibliotheken zu benutzen (WinAPI, u.v.a.m), hast du von vornherein verloren, wenn du nur mit C++ Brille diese Bibliotheken versuchst zu bedienen, bspw. den Unterschied zw. Array und Zeiger oder automatic/static storage duration nicht kennst.

    RAII scheinst du auch nicht zu kennen/verstehen. Jeder C++-Programmierer weiß spätestens seit es RAII gibt ganz genau, wann automatische Objekte zerstört werden.

    Wutz schrieb:

    - virtual -> hast du entweder nicht verstanden oder denkst, nur weil es z.B. im embedded nicht so Bombe ist, gleich überall schlimm ist
    - friend -> hat ebenfalls eine Daseinsberechtigung, vermutlich kennst du sie nur nicht
    - protected -> dito
    - fehlender baseclass-Zugriff -> ??? protected!
    - den ganzen Cast-Müll, der auch noch im Rahmen von 'Typsicherheit' verkauft wird -> C-Casts sind noch mehr Müll
    - Konstruktor ohne Rückgabe (wenn ein Return sinnvoll ist, dann genau in diesem Fall nämlich zur Rückgabe der neuen Instanz) -> okay, Konstruktoren hast du auch nicht verstanden, oder du kennst keine Exceptions

    Wutz schrieb:

    - B.S. hat nie eine Referenzimplementierung eines C++ Compilers angeboten, d.h. er hat nie irgendwas Praktikables angestellt mit 'seiner' neuen Programmiersprache, so wie die 4 o.g. Herrn, die nicht nur eigene Compiler für ihre Sprache entwickelt haben, sondern den Compiler auch in der Praxis eingesetzt haben für komplexe Anwendungen wie Betriebssysteme

    Blödsinn



  • DirkB schrieb:

    questionmark schrieb:

    @Wutz: bist du ein C-Profi?

    Wikipedia schrieb:

    Ein Profi, Kurzwort von veraltend Professionist, ist jemand, der im Gegensatz zum Amateur oder Dilettanten eine Tätigkeit beruflich oder zum Erwerb des eigenen Lebensunterhalts als Erwerbstätigkeit ausübt.

    Leider arbeiten auch Dilettanten beruflich mit C.

    Wieso leider?

    edit: Arbeitet euch doch nicht an diesem Troll ab.



  • Bashar schrieb:

    edit: Arbeitet euch doch nicht an diesem Troll ab.

    Falls du mich damit meinen solltest: den Spruch kannste getrost wieder streichen!
    MfG



  • Dich mein ich nicht.


Anmelden zum Antworten