[C/C++] C++ & OOP - Unterschied??

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Beogradjanin, 5. Juli 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. Juli 2007
    C++ & OOP - Unterschied??

    Hi Leute,

    hab da mal ne Frage zu C++ bzw. zu Objektorientiertes Programmieren. Im nächsten Semester werde ich das Fach OOP bekommen, und wollte jetzt mal wissen, wo da die Unterschiede zw. C++ und OOP sind. Gibt es überhaupt welche Unterschiede??

    Was würdet ihr mir empfehlen, ein Buch über C++ oder ein Buch über OOP zu kaufen??

    Und die wichtigste Frage: Was kann ich mit OOP anfangen?? Programmiert man mit OOP Programme, die man z.B. in Windows verwenden kann (also mit Buttons etc.) oder ist das was komplett anderes??

    Danke im Vorraus
     
  2. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    hi

    OOP = Objektorientierte Programmierung

    die oop ist auch in c++ enthalten

    z.b. klassen und methoden
     
  3. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Ein Button z.B. kann ein Objekt sein


    Wenn du dir z.b. eine Klasse "Auto" schreibst und dann eine neue Instanz dieser Klasse erzeugst dann ist das ein Objekt.
    Beispiel als Pseudo VB Code
    Code:
    Dim Mercedes As Auto
    Mercedes = new Auto
    
    Mercedes.Farbe = "Rot"
    Mercedes.VMAX = 220
    
    Mercedes.Blinken()
    u.s.w.
    Ein Objekt is ne Instanz einer Klasse.

    Gruß
    meckes
     
  4. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    In der UML ist ein Objekt eine Instanz einer Klasse. Z.B. Klasse Katze und die Instanz (das Objekt) Muschi ^^
    Das würde jedoch nicht gleich eine grafische Oberfläche (Buttons usw.) bedeuten.
     
  5. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    OOP ist eine Art des Programmierens.
    C++ ist eine Programmiersprache.
    Mit C++ kannst du objektorientiert programmieren.
     
  6. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Danke erst einmal für die Antworten. Also würdet ihr mir somit empfehlen, lieber ein Buch über C++ zu kaufen, da OOP ja sozusagen eine Unterkategorie von C++ ist??
     
  7. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Kommt drauf an. Wenn du C++ schon beherrscht, wieso dann nicht ein Buch über OOP? Aber wenn du für OOP mehr Grundlagen brauchst, dann ein Buch über C++. Hab noch nie ein C++ Buch gelesen, aber so schätz ich das mal ein.
     
  8. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    OOP ist keine Unterkategorie von C++ es ist ein konzept was durch alle modernen sprachen hindurch angewandt wird - was für dich besser ist kann ich nicht sagen dazu kenn ich den inhalt der vorlesung (?) nicht

    wobei du bei c++ nicht weit kommst ohne OOP

    und btw viele OOP Bücher (zumindest die die ich mal gesehen hab) arbeiten auch mit c++ evtl. kannst du ja beides kombinieren

    ansonsten wieder mal ein dufter rat: learning bei doing und der theoriekram (der teilweise echt hilfreich sein kann) wird dir ja an der uni/fh/ba whatever beigebracht
     
  9. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    in jedem normalen "nicht anfänger buch" ist oop drin!

    also dürfte es relatv egal sein. für den einstieg in c++ ist das entsprechende buch besser.

    wenn du tiefer in oop willst, also

    - virtual
    - inline
    - polymorphie
    - etc

    dann nimm das oop buch

    gruß blaah
     
  10. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Weiter stellt sich auch die Frage, ob ihr in C++ oder in Java oder was anderem programmiert?
    Java ist auch OOP.

    Gruß Jojo
     
  11. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    in C++ programmierst du eigentl. fast zwangsweise objektorientiert... Allein eine Windows Form ist ein Objekt, ein Button darauf ebenfalls. Und jedes weitere Windows steuerelement auch. Also wenn ich du wär würd ich mir erstmal die Grundlagen beibringen und dann n Buch kaufen des auf jedenfall OOP behandelt.

    Gruß
    meckes
     
  12. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Themen

    • Objektorientierter Ansatz
    • Klassenkonzept anhand eines ersten Beispiels, Benennungen, Vergleich von prozeduraler und objektorientierter Programmierung, UML-Darstellung
    • Initialisierung von Objekten: Konstruktoren, Destruktor, Überladung des Standardkonstruktors,
    • Arbeiten mit Klassen und Objekten, Anwendung grundlegender Techniken: - Trennung von Klassenprogrammierung und Anwendungsprogrammierung - Überladung von Operatoren, insbesondere des Zuweisungsoperator - Erstellung grundlegender und weiterer Methoden . - Dynamische Speicherverwaltung insbesondere bei Zeichenketten
    • Statische und dynamische (verkettete) Listen
    • Wiederverwendung von Software, Vererbung
    • Späte Bindung (Polymorphismus)
    • Ein- und Ausgabe mit den in C++ vordefinierten Klassen


    Meine Kenntnisse in Programmieren:

    Grundkenntnisse in C.
    Was würdet ihr mir jetzt raten wegen dem Bücherkauf? oben seht ihr ja die Themen


    Thx
     
  13. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Threadname: [C/C++] - C++ & OOP - Unterschied??

    @meckes: Nichts gegen dich, aber ich glaub du irritierst jemanden, der nicht weiß, was ein Objekt ist, wenn du Objekte, die grafische Elemente sind, aufzählst. Du hast ja das Beispiel Form und Button genannt.
    Dabei ist ja jede Instanz ein Objekt.
     
  14. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    für den anfang könnte mir das dieses Buch hier reichen oder??
    C++: Objektorientiertes Programmieren von Anfang an: Amazon.de: Helmut Erlenkötter: Bücher

    von den Bewertungen her sieht es auch ganz gut für Anfänger aus?!
     
  15. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    Kostenlose Bücher gibt's natürlich auch im Netz:

    http://www.galileocomputing.de/
    (links unten unter "Online-Inhalte" auf "openbook"
     
  16. 5. Juli 2007
    AW: C++ & OOP - Unterschied??

    ja, aber ich finde es immernoch besser aus einem Buch zu lernen, als vom PC. Außerdem fahre ich demnächst in den Urlaub und werde da wohl kein Internet zur verfügung haben.
     
  17. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    Dur kannst dir de bücher von dem verlag auch kaufen, auch wenn es siekostenlos im netz gibt!

    Es muss ja nicht immer gleich heissen das sie schlecht sind!

    Ich guck auach öfter ist das visual basic open book rein und da ist alles ausfürlich und verständlich erklärt!

    Knusperkeks
     
  18. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    @Knusperkeks:

    Ich habe doch garnicht gesagt, dass diese Schlecht sind. Nur wusste ich halt auch nicht, dass es viele davon auch zu kaufen gibt. Bzw. würde ich mir diese auch downloaden können, da ich ja meinem Laptop mit in den Urlaub nehme.
    Das Problem war halt nur wegen dem Internet.

    Außerdem ist bei mir halt das Problem, dass ich mich nicht zum reinen Informatiker ausbilde, sondern zum Ingenieur-Informatiker. Und ob es da nun Sinn macht, in ein Buch 30-40 Euro zu investieren, ist fraglich.

    Diese Bücher befassen sich ja mit problematischeren Themen und analysieren bestimmt auch Sachen, die für mich nicht vom Nutzen sind. Oder???
     
  19. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    OOP ist einfach eine art der strukturierung einer Programmiersprache. Jetzt gibts viele Sprachen die das Unterstützen. Also ich hab OOP durch C++ gelernt.

    Wenn man C++ kann, beherscht man auch OOP.

    Es gibt aber von sprache zu sprache noch unterschiede vor allem in der Polymorphie (Vererbung).

    mfg tobZel
     
  20. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    Er hat gefragt ob man mit objektorientierter Programmierung auch Windowsprogramme programmieren kann. Und ich hab ihm geantwortet, dass Windowsprogramme mit grafischer oberfläche eigentlich ausschließlich objektorientiert programmiert sind. Wo liegt das Problem?
    Form und Button waren Beispiele für Objekte, man beachte das Wort "Beispiele". Ausserdem ist ein Button ja eine Instanz einer Klasse. Nämmlich eine der "Button-Klasse" ^^


    Gruß
    meckes
     
  21. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    Ja, klar war alles korrekt. Wollte nur verhindern, dass jemand denkt, dass OOP grafischens Programmieren bedeutet
     
  22. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    @Hapablap:

    achso, also ist OOP ein Teil vom grafischen Programmieren, aber nicht nur das??? Oder hat es sogut wie nichts mit grafischen Programmieren zu tun?
     
  23. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    Ah, du kapierst es nicht.

    OOP ist kein "Teil" von irgendeiner Programmierung.

    sondern OOP ist quasi ein Standart, der beschreibt, wie man objektorientiert programmieren kann. So sachen wie "Grafisches PRogrammieren" implementieren nur den Standard.


    !wiki OOP btw
     
  24. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    Und das soll wer kapieren =)) lol sorry

    So... ich versuch jetzt mal, das ganz einfach zu erklären.

    Es gibt verschiedene Arten zu programmieren, die z.T. von der Sprache in der du programmierst (C/C++, Java, Basic, PhP, etc.) unabhängig sind.
    OOP(Ojektorientierte Programmierung:
    Die objektorientierte Programmierung, kurz OOP, ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma, welches Flexibilität und Wiederverwendbarkeit von Programmen fördert. Die Grundidee der objektorientierten Programmierung ist, Daten und Funktionen, die auf diese Daten angewendet werden können, möglichst eng in einem sogenannten Objekt zusammenzufassen und nach außen hin zu kapseln, so dass Methoden fremder Objekte diese Daten nicht versehentlich manipulieren können. Im Gegensatz dazu beschreibt das vor der OOP vorherrschende Paradigma eine strikte Trennung von Funktionen (Programmcode) und Daten, dafür aber eine schwächere Strukturierung der Daten selbst. Befürworter der OOP vertreten die These, dass der OOP-Ansatz für Computerneulinge leichter zu erlernen ist als bisherige Ansätze.

    Prozedurale Programmierung:
    Prozedurale Programmierung ist der Ansatz, Computerprogramme aus kleineren Teilproblemen (oder genauer: Aufgaben), die als Prozeduren bezeichnet werden, aufzubauen. Der kleinste und unteilbare Schritt bei diesem Verfahren ist die Anweisung. Ein Programm schreitet sozusagen von Anweisung zu Anweisung voran, was dem lateinischen Wort „procedere“ entspricht. Der Programmierer befiehlt dem Computer durch das Programm, was er in welcher Reihenfolge zu tun hat. Bei diesem Vorgang zielt man darauf ab, Quellcode wiederverwendbar und einfach zu gestalten, was jedoch nicht immer gelingt.

    Generische Programmierung:
    Generische Programmierung ist ein Verfahren zur Entwicklung wiederverwendbarer Software-Bibliotheken. Dabei werden Funktionen möglichst allgemein entworfen, um für unterschiedliche Datentypen und Datenstrukturen verwendet werden zu können.

    Ich wollte es erst selber schreiben, hab dann bei Wiki geguckt und die konnten es einfach schöner =))

    Ganz grundsätzlich würd ich sagen, man unterscheidet zwischen objektorientierter Programmierung und imperativer Programmierung.
    Imperative Programmierung wäre (jetzt als deutliches Beispiel) du willst 10 mal "A" auf dem Bildschirm ausgeben lassen und musst dafür in deinen Code schreiben:
    Code:
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Wie du siehst, gibst du jeden Befehl einzelnt vor. Auch dafür hat Wiki wieder einen schlauen Satz: Imperative Programmierung ist ein Programmierparadigma. Sie versteht ein Programm als Folge von Befehlen, die der Rechner in definierter Reihenfolge abarbeitet.

    Ojektorientierte Programmierung wäre jetzt im Gegensatz dazu:
    Code:
    funktion Buchstabenausgabe (BuchstabeDerAusgegebenWerdenSoll, AnzahlDerAusgaben)
    {
     Schleife(FühreFolgendesSoOftAusWie"AnzahlDerAusgaben"EsBesagt)
     {
     Schreibe BuchstabeDerAusgegebenWerdenSoll;
     }
    }Funktion Ende
    
    // Jetzt wird die Funktion erst aufgerufen:
    Buchstabenausgabe("A", 10);
    
    In der ersten Zeile wird hier eine Funktion erstellt, eine Funktion, die du im weiteren Programmverlauf immer wieder benutzen kannst.
    In dieser Funktion wird eine Schleife erstellt (Zeile 3) die bewirkt, dass alles darauf folgende (bis Zeile 5) so oft ausgeführt wird wie wir es sagen. Also in diesem Fall den Buchstaben schreibt den wir geschrieben haben wollen.
    In der letzten Zeile wird nun diese Funktion aufgerufen, wobei wir ihr über das was wir in den Klammern schreiben ihr mitteilen, welchen Buchstaben und wie oft wir diesen ausgegeben haben wollen.
    Zuerst sieht es jetzt verdammt kompliziert aus, ist aber eigentlich recht simpel und erleichtert das ganz doch wesentlich. Denn diesmal wolltest du "nur" 10 mal A ausgeben. Aber stell dir jetzt mal vor, du wolltest 200 mal A ausgeben lassen....
    Außerdem zeigt dieses Beispiel das bei objektorientiertem Programmieren oft alles zu "einzelnen" Objekten gemacht wird. In dem Beispiel repräsentiert durch die extra Funktion "Buchstabenausgabe".
    Ein weiterer Punkt ist, die wiederverwendbarkeit des 2. Beispiels. Stell dir vor, du willst nicht nur A ausgeben lassen sondern auch B und diesmal 20 mal. Im 2. Beispiel müsstest du nur schreiben:
    Code:
    funktion Buchstabenausgabe (BuchstabeDerAusgegebenWerdenSoll, AnzahlDerAusgaben)
    {
     Schleife(FühreFolgendesSoOftAusWie"AnzahlDerAusgaben"EsBesagt)
     {
     Schreibe BuchstabeDerAusgegebenWerdenSoll;
     }
    }Funktion Ende
    
    // Jetzt wird die Funktion erst aufgerufen:
    Buchstabenausgabe("A", 10);
    Buchstabenausgabe("b", 20);
    
    Im ersten Beispiel müsstest du dagegen schreiben:
    Code:
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe A
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Schreibe B
    Man hab ich jetzt viel geschrieben ^^ naja egal... wenn jetzt das Inet abkackt schmeiß ich den Router außem Fenster ^^.

    mfg thecoolman4rr
     
  25. 6. Juli 2007
    AW: C++ & OOP - Unterschied??

    Ich kapiere es. Zumindest leichter als deine sinnlose Erklärung.

    Steht in meinem Post was anderes?

    Wer sagt, dass es bei Imperativer PRogrammierung keine Schleifen gibt?

    Tja schön, nur ist das, was du gezeigt hast, ein exzellentes Beispiel für Prozedurale Programmierung. In deinem wird die Ausgabe nur in iener Funktion ausgelagert, von Objekten keine Spur.

    Von Wikipedia kopieren kann ich auch..
     
  26. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.