Wie lerne ich C++ ...



  • naja schrieb:

    Und dann muss es erst mal Compiler dafür geben und dann müssen die erst mal so gut sein, dass man sie professionell einsetzen kann und dann müssen die Projekte in der Firma in der ich arbeite umgestellt werden,... für Hobbyspielereien gehts vielleicht schneller, aber für die Arbeit eher C++0D, C++0E...

    Dies sehe ich nicht so. Ja, ich gehöre zu denen, die vor dem C++98 Standard angefangen haben C++ zu lernen, und wissen wie die Situation bis heute ist. Aber ich sehe auch das inzwischen die Umsetzungen immer schneller erfolgen, die C++ Compilerhersteller schon mit ersten C++0x Features werben und auch scheinbar mehr Interesse daran besteht, nicht der Letzte zu sein.

    Daher gehe ich davon aus, das bereits nächstes bis übernächstes Jahr die Compilerhersteller einen Großteil umgesetzt haben (nicht alles, aber vieles) und es diesmal deutlich schneller den Firmeneinzug findet, als z.B. der C++98 und TR1.



  • asc schrieb:

    bastelui schrieb:

    ??Mein Multimeter kann doch einfach nur bestimmte Befehle?? Das hat doch keine Programmierbibliothek.!?

    Gut... andere Frage: Wie spricht man es an wenn es keine Bibliothek mitbringt? Bzw. über welche Schnittstelle spricht man es an, und was für Ein- bzw. Ausgaben bekommt man von dieser?

    Das Multimeter hat eine normale serielle Schnitstelle. http://de.wikipedia.org/wiki/RS-232
    Und wenn ich dem Multimeter die richtigen ASCI zeichenfolge schicke, macht es das, was ich will.

    asc schrieb:

    MrN schrieb:
    Ich denke da habe ich es leiber ein bisschen komplizierter und bin dafür aber auch Maschienennäher.

    Ich ziehe hier zwar C++ vor, bedingt durch deine Assemblervorkenntnisse könnte dann aber auch C etwas für dich sein.

    Meinst du damit C#?

    asc schrieb:

    MrN schrieb:
    ...dann ein Button, eine Checkbox...

    und hier wird es mit C++ haarig. Versteh mich nicht falsch, ich will C++ sicherlich nicht schlecht machen (zumal ich damit u.a. mein Lebensunterhalt verdiene), aber C++ und Graphische Oberflächen ist eher ein späterer Schritt.

    Es gibt unter C++ keine einheitliche GUI-Bibliothek, und alle setzen Grundlagenwissen von C++ voraus (in der Regel beschäftigt man sich mind. ein halbes Jahr-Jahr mit reiner Konsolenprogrammierung - C++ ich mächtig aber auch komplex) und dann muss man sich erstmal aussuchen welche Bibliothek man nimmt (MFC, wxWidget, QT, VCL...).

    Ok, wenn du das meinst, dann werde ich ersteinmal auf eine grafische Oberfläche verzichten.

    Ich habe mir mal Thinking in C++ angeschaut. Das beschäftigt sich anscheinend erstmal viel mit Grundlagen, also viel lesen und verstehen, bevor das erste Programm kommt das was sichbares macht. Nun gut.

    Wenn ich Visual C++ 2008 öffne gibt es viele Buttons und Menüs.
    Wie erstelle ich dann ein Projekt; was für ein Projekt muss ich erstellen; wie kann ich den code debuggen lassen und das Programm starten.

    Wo steht das, wie ich praktisch starte? Oder muss ich einfach ausprobieren?

    Vielen dank an ASC für die schnelle coole kompakte und tolle Hilfe!!

    Gruß, Bastelui



  • Schau Dir dies mal an: http://www.codeproject.com/KB/system/serial.aspx
    (demo project)

    Hier hast Du ein konkretes Beispiel auf meiner Homepage:
    http://www.henkessoft.de/Roboter/ASURO.htm (siehe ziemlich weit unten, Programm zur Ultraschall-Distanzmessung am Asuro via RS232)

    ... und das hier:
    http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx

    WinAPI findest Du hier: http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api1.htm


  • Administrator

    bastelui schrieb:

    Das Multimeter hat eine normale serielle Schnitstelle. http://de.wikipedia.org/wiki/RS-232
    Und wenn ich dem Multimeter die richtigen ASCI zeichenfolge schicke, macht es das, was ich will.

    Also keine Bibliothek, bzw. die Bibliothek schreibst du? Du schickst dem RS-232 direkt Bits, nicht noch über irgendeine Bibliothek eines Drittanbieters?
    Dann brauchst du auf Windows dazu die WinAPI, musst die RS-232 Schnittstelle öffnen und entsprechend schreiben und lesen. Wie man das macht, müsstest du im WinAPI Forum nachfragen oder selber über die MSDN suchen.

    bastelui schrieb:

    Meinst du damit C#?

    Er schrieb C, da meint er auch C und nicht C#. C und C# sind unterschiedliche Sprache. C ist eine sehr Hardwarenahe Sprache, noch einen Schritte näher als C++ könnte man sogar behaupten.
    Allerdings sogar wenn ich C ähnlich Programmieren würde, würde ich wohl einen C++ Compiler nehmen, weil C++ einfach viele Vorteile hat 🙂

    bastelui schrieb:

    Wenn ich Visual C++ 2008 öffne gibt es viele Buttons und Menüs.

    Liest sich irgendwie witzig 🙂

    bastelui schrieb:

    Wie erstelle ich dann ein Projekt; was für ein Projekt muss ich erstellen; wie kann ich den code debuggen lassen und das Programm starten.

    Wo steht das, wie ich praktisch starte? Oder muss ich einfach ausprobieren?

    Für Visual Studio lohnt sich immer mal die MSDN anzuschauen.
    Um eine Projekt zu starten:
    File -> New -> Project -> General/Empty Project -> Wenn möglich, noch leerer machen

    Dann:
    main.cpp dazufügen (rechtsklick auf das Projekt -> Add -> New Item -> Code/C++ File(.cpp) -> Name Eingeben -> Ok

    Zum Kompilieren:
    F7 oder Ctrl+F7 .. bin mir nicht mehr sicher, was die Standardeinstellung war.
    Gibt auch ein Menu Build, dort findest du alles was du brauchst. Das Menu findet man auch, wenn man auf das Projekt rechtsklickt.

    Zum Debuggen:
    Oben das Menu Debug, bzw. F5.
    Breakpoints setzt man ganz einfach, indem man links von den Zeilennummern auf die graue Fläche klickt.

    Ansonsten halt ein wenig rumprobieren. Man findet sich relativ schnell zurecht.

    Grüssli



  • Dravere schrieb:

    Allerdings sogar wenn ich C ähnlich Programmieren würde, würde ich wohl einen C++ Compiler nehmen, weil C++ einfach viele Vorteile hat

    ja, z.b. die casts und sämtliche aktionen mit void* sind wunderschön.
    🙂



  • bastelui schrieb:

    asc schrieb:

    Ich ziehe hier zwar C++ vor, bedingt durch deine Assemblervorkenntnisse könnte dann aber auch C etwas für dich sein.

    Meinst du damit C#?

    Nein C

    Es gibt einige Sprachen mit dem C im Namen:
    C
    C++
    C++/CLI
    C#
    ...

    C ist die älteste von den aufgeführten und eine rein prozedurale Sprache. C++ wurde so konzipiert das es weitgehend C-Code versteht, aber selbst noch etliches andere mitbringt (Im wesentlichen ist C++ ein C Ableger, auch wenn man in C++ möglichst kein C programmieren sollte - möglich ist es aber).

    asc schrieb:

    Ich habe mir mal Thinking in C++ angeschaut. Das beschäftigt sich anscheinend erstmal viel mit Grundlagen, also viel lesen und verstehen, bevor das erste Programm kommt das was sichbares macht. Nun gut.

    C++ ist (wie auch C und Assembler) eine der komplexesten Sprachen und noch recht Hardwarenah. Da ist es nicht unüblich das die Grundlagen recht - ich sag mal - ausschweifend sind.

    asc schrieb:

    Wenn ich Visual C++ 2008 öffne gibt es viele Buttons und Menüs.
    Wie erstelle ich dann ein Projekt; was für ein Projekt muss ich erstellen; wie kann ich den code debuggen lassen und das Programm starten.

    Kurzeinführung:

    1. File/New/Projekt
    2. Win32 Console Application auswählen, Namen etc eingeben.
    3. OK, Next, Harken bei "Empty Projekt" setzen und mit Finish abschließen
    4. Rechte Maustaste auf dem Projekt, "Add/New Item" auswählen, C++ File (.cpp) und dann "main.cpp" oder wie deine erste Datei auch heißen soll, eingeben.

    Zudem rate ich noch zu folgenden:
    5. Im Solution Explorer rechte Maustaste auf dem Projekt machen, "Properties" auswählen
    6. Configuration/All Configurations auswählen
    7. Unter dem Ast C/C++ Warning Level auf 4 erhöhen

    und dann kannst du loslegen. Mit einem geöffneten Projekt wirst du den Rest (debuggen, starten... recht schnell selbst finden).

    cu André



  • asc schrieb:

    C++ ist (wie auch C und Assembler) eine der komplexesten Sprachen...

    c und asm sind nicht annähernd so komplex.
    🙂



  • FYI:
    build = STRG + SHIFT + B
    run with debugger = F5
    run without a debugger = STRG + F5



  • asc schrieb:

    C++ ist (wie auch C und Assembler) eine der komplexesten Sprachen und noch recht Hardwarenah.

    Ist C++ spätestens mit boost nicht überhaupt die komplexeste Sprache aller Zeiten?



  • user-l schrieb:

    Ist C++ spätestens mit boost nicht überhaupt die komplexeste Sprache aller Zeiten?

    Wie kann sich die Komplexität von etwas ändern, nur weil man es benutzt?

    Oder bekommt Dein Auto auch mehr Ausstattung, je mehr Du damit fährst? 😃



  • user-l schrieb:

    Ist C++ spätestens mit boost nicht überhaupt die komplexeste Sprache aller Zeiten?

    Ich finde das durch boost sogar einiges an Komplexität wegfällt (Smartpointer, BOOST_FOREACH, lexical_cast... vereinfachen einiges).

    cu André



  • welche Sprache ist denn komplexer als C++ mit boost ?



  • user-l schrieb:

    welche Sprache ist denn komplexer als C++ mit boost ?

    Was macht bitte schön C++ durch boost komplexer?



  • Man unterscheide komplex und kompliziert - es gibt Sprachen mit zig verschiedenen Features, die schwer zu lernen sind, weils einfach eine Menge ist, die es zu lernen gibt. Andere Sprachen haben nur eine Handvoll Features, mit denen man aber ne Menge anstellen kann.
    C++ mit Boost ist ein recht großer Werkzeugkasten, aber man kann (wenn man die Werkzeuge alle kennt) viele Probleme in wenigen Schritten lösen. Dafür wirds kompliziert wenn man die selben Probleme mit einer anderen Sprache mit weniger Features lösen will - häufig brauhcts dazu große komplizierte Programmkonstrukte die die eine oder andere Hirnwindung heißlaufen lassen...



  • pumuckl schrieb:

    Dafür wirds kompliziert wenn man die selben Probleme mit einer anderen Sprache mit weniger Features lösen will - häufig brauhcts dazu große komplizierte Programmkonstrukte die die eine oder andere Hirnwindung heißlaufen lassen...

    ach nö, für andere sprachen gibt's auch bibliotheken und fertige codes, etc, die einem vieles abnehmen können.
    🙂



  • asc schrieb:

    Was macht bitte schön C++ durch boost komplexer?

    zum dritten Mal: welche Sprache ist komplexer als C++ mit boost ?

    [quote="pumuckl"
    häufig brauhcts dazu große komplizierte Programmkonstrukte die die eine oder andere Hirnwindung heißlaufen lassen...
    [/quote]

    deshalb sind C++ Projekte ja auch oft für ihre besonders kurzen Quelltexte bekannt.



  • user-l schrieb:

    zum dritten Mal: welche Sprache ist komplexer als C++ mit boost ?

    nun ja, 'boost' offenbart einem erst die komplexität, die c++ inne wohnt. aber ohne 'boost' kann man c++ auch auf recht einfachem level nutzen.
    🙂



  • user-l schrieb:

    zum dritten Mal: welche Sprache ist komplexer als C++ mit boost ?

    LOL, boost ändert doch nix an C++. C++ ist komplex.



  • dumm oder was schrieb:

    user-l schrieb:

    zum dritten Mal: welche Sprache ist komplexer als C++ mit boost ?

    LOL, boost ändert doch nix an C++. C++ ist komplex.

    Und da ist auch nichts schlimmes dran.


Anmelden zum Antworten