myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[C++] OOP und die damit verbundenen Probleme

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 13.10.10, 00:45   #1
waldfee0071
Ist öfter hier
 
Benutzerbild von waldfee0071
 
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Standard [C++] OOP und die damit verbundenen Probleme

Ich beschäftige mich nun schon ein wenig länger mit C++, habe mir dazu auch das ein oder andere Buch aus der Börse angesehen, doch in sachen OOP steig ich immer noch nicht durch. Classes sind für mich -wie man so schön sagt- Bömische Wälder.

Kann mir jemand ein Tutorial/Buch empfehlen, in den der Ganze Spaß in sachen Classess/Pointer auch für Gehrinakrobaten wie mich verständlich erklärt ist ?

MfG Waldfee
waldfee0071 ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 05:22   #2
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Ist ein guter Anfang, um erstmal die Basis zu verstehen, was OOP ist und was es für Ansätze und Konzepte verfolgt.
Xalir ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 11:53   #3
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

OOP: Klassen = Objekte

Die implementierst eine Klasse so, dass sie die rudimentären und gewünschten Eigenschaften des Objektes besitzt.

Oft genanntes Beispiel "Mensch"...

..ein Mensch hat
- Alter
- Beruf
- Kinder
- Eltern
- usw.

Dementsprechend sollte diese Klasse private Variablen, getter/setter-Methoden enthalten.
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 13:28   #4
waldfee0071
Ist öfter hier
 
Benutzerbild von waldfee0071
 
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Standard

so im groben steig ich da ja hinter, nur bei den verschiedenen arten von constrovtoren steig ich net so ganz durch, genauso wie ich funktionen schreiben/aufrufen soll, die sich auf die klasse beziehen bzw. nur auf einzelne objekte der klasse
waldfee0071 ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 13:42   #5
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Die Konstruktoren verwendest Du um ein Objekt zu erstellen.

Beispiele:
Du hast die Konstruktoren Mensch(Alter), Mensch(Beruf), Mensch(Alter, Beruf, Größe)... (kannst Dir beliebige aussuchen)

new Mensch(30) -> erstellt ein Mensch-Objekt mit Alter 30
new Mensch(Lehrer)
new Mensch(40, Arzt, 180)

Sollte klar sein, oder?

getter/setter Beispiele:

.setAlter(Alter) / .getAlter()
.setBeruf(Beruf) / getBeruf()

Aufruf:

Mensch mensch = new Mensch(30);
mensch.getAlter(); // das sollte Dir den Wert 30 zurückgeben
mensch.getBeruf(); // gibt Dir z.B. null zurück, da der Beruf dieses Menschen noch unbekannt ist
mensch.setBeruf(Pornodarsteller);
mensch.getBeruf(); // gibt Dir nun den Wert "Pornodarsteller" zurück

Die Logik und die Funktionalität der Methoden musst Du natürlich selbst implementieren.
Bei einfachen Dingen, einfachen Werten (wie hier z.B. Alter, Beruf usw.) ist das natürlich trivial.

Schwieriger wirds, wenn Du z.B. Methoden wie getVerwandte() erstellen möchtest.

Was verstehst Du unter Objekte einer Klasse? Die Klasse ist das Objekt!
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 14:43   #6
persocon
Grinsekatze
 
Benutzerbild von persocon
 
Registriert seit: Dec 2009
Beiträge: 25
Bedankt: 26
persocon ist noch neu hier! | 0 Respekt Punkte
Standard

So, ich kann dir mal einige Links dazu empfehlen.. wenn ich sie finde

Die Seite is eigentlich ganz toll:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Und die hier is echt super:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

HIer findet sich auch das ein oder andere nützliche:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Ich hab das ganze auch viel besser verstanden durch Beispiele.
Also wenn ich mir das ganze visuell vorstelle.
z.B. hatten wir eine Übungsaufgabe in der wir eine Bibliothek erstellen sollten.
Da hat man also die Klasse: Bibliothek (bzw sagen wir mal den PC der die Bib verwaltet).

Dieser PC muss folgendes können (logisch):
Neue Bücher anlegen
vorhandene Bücher verwalten
Bücher löschen
neue Mitglieder anlegen
vorhandene Mitglieder verwalten
Mitglieder wieder löschen.

=> bedeutet, es wäre logisch 2 Klassen für die Bücherei zu erstellen
1x Buch (die die bücher verwalten kann)
und 1x Mitglieder (die die Mitglieder verwalten kann)

Dann hast du einen Standartkonstruktor, der sagt dir wie so ein Buch aussieht (es hat Seiten, einen Einband, ein erscheinungsjahr und vor allem eine ID unter der es eingeordnet is im regal <- da findet man es)

Und um dir das eintragen von Büchern in die Bibliothek zu erleichtern, gibts allgemeine Konstruktoren.
Kann man vllt vorsichtig mit Vorlagen vergleichen.
z.B. gehört das Buch in die Kategorie "historischer Roman" oder ist "1932" erschienen.

Dann denkste "ooooooh, muss ich nich nochmal extra eintragen! Ich nehm einfach das Eingabeformular von 1932 und trags da ein, supi, was ne zeitersparnis!" *hust*
persocon ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 17:28   #7
waldfee0071
Ist öfter hier
 
Benutzerbild von waldfee0071
 
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Standard

kann geclosed werden, ich hab jetz über ne woche versucht an OOP ranzutasten, selbst tutorials bekomm ich net zu laufen es sein denn copy->paste.

Man muss ab und zu einsehen, wenn man zu etwas geistig nicht in der lage ist, deswegen studier ich ja auch net, sonder arbeite richtig
waldfee0071 ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 18:38   #8
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

So schnell brauchst Du doch nicht aufgeben....
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 20:19   #9
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von PornoPenner Beitrag anzeigen
Was verstehst Du unter Objekte einer Klasse? Die Klasse ist das Objekt!
das kann ich nicht stehen lassen. die klasse ist nicht das objekt!
ein objekt ist eine instanz einer klasse.

klassen alleine machen auch keine objektorientierte sprache aus.
germgerm ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 20:34   #10
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von germgerm Beitrag anzeigen
das kann ich nicht stehen lassen. die klasse ist nicht das objekt!
ein objekt ist eine instanz einer klasse.

klassen alleine machen auch keine objektorientierte sprache aus.
Meine Güte, super Kommentar!
Damit machst Du es Waldfee ja umso verständlicher...
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 20:46   #11
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

@pornopenner:

falsche aussagen verwirren meiner meinung nach noch viel mehr.
waldfee hat einige gute literaturhinweise bekommen.
germgerm ist offline   Mit Zitat antworten
Ungelesen 13.10.10, 21:51   #12
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Und was ist daran falsch?

Die Abstraktion Objekt <-> Klasse ist vollkommen richtig.
Eben einfach damit Waldfee es sich leicht vorstellen kann.

Aber man kann ja natürlich auch in der Fachsprache (die sie nicht verstehen wird) klugscheissen...
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 14.10.10, 05:08   #13
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Nö, ist es nicht. Eine Klasse ist ein Bauplan. Ein Objekt ist letzlich die Summe aller dafür eingesetzen Baupläne (Stichwort Vererbung).

Und verständlich oder nicht, Halbwahrheiten helfen auch keinem Anfänger weiter.
Xalir ist offline   Mit Zitat antworten
Ungelesen 14.10.10, 07:43   #14
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von PornoPenner Beitrag anzeigen
Aber man kann ja natürlich auch in der Fachsprache (die sie nicht verstehen wird) klugscheissen...
hat sich da wer ins knie geschossen?
germgerm ist offline   Mit Zitat antworten
Ungelesen 16.10.10, 15:54   #15
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 116
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

@Waldfee:

Du brauchst nicht so schnell aufgeben. OOP ist halt ein Konzept, für dessen Verinnerlichung man schon einiges an Zeit mitbringen muss. Sehr viele sind auch der Meinung, sie haben OOP verstanden, aber realisieren die Möglichkeiten und die Tragweite nicht wirklich oder erst nach langer Zeit.

Einen guten Einstieg wirst Du wahrscheinlich in Büchern finden, die mit sehr vielen Beispielen arbeiten. Wenn Du verstehst, warum man überhaupt versucht, in Klassen zu abstrahieren und welche enorme Flexibilität und Macht hinter dem Ansatz steckt, dann wird der Rest schnell logisch.


@PornoPenner:

Es hilft niemandem, wenn man Bezeichnungen einfach zusammenwirft - vor allem, wenn klare Falschaussagen dabei herauskommen. Eine konsequente Benennung mit klarer Trennung von anderen Begriffen verwirrt nicht, sondern bewirkt genau das Gegenteil. Als Anfänger helfen solche "vereinfachten Falschaussagen" überhaupt nicht weiter, weil der Unterschied zwischen Klasse und Objekt fundamental für das Verständnis des Ganzen ist.
harbok ist offline   Mit Zitat antworten
Ungelesen 16.10.10, 17:41   #16
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Klugscheissen und einen Anfänger, der jetzt schon keine Lust auf OOP hat, mit tiefen Details und Fachbegriffen zu bewerfen, bringt insgesamt auch nicht viel
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 16.10.10, 21:19   #17
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 116
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

Die Aussage, daß Objekte keine Klassen sind, nicht zu akzeptieren, ist für Dich also klugscheissen, ja?
harbok ist offline   Mit Zitat antworten
Ungelesen 16.10.10, 21:52   #18
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Kannst dann doch gerne Deinen eigenen Heul-Thread aufmachen

Ich wollte lediglich nicht von Instanzen sprechen und es sehr einfach halten, damit Waldfee einen Teil abstrahieren kann.

Du erzählst den Kindern im Kindergarten wohl auch, dass sie akzeptieren müssen, dass es den Weihnachtsmann nicht gibt! Ist ja schließlich richtig so! Naja, in einen eigentlich geschlossen Thread schreiben, weil man eine Sache nicht "akzeptieren" kann und irgendwas richtig stellen muss, was jeder hier (bis auf den Threadersteller) weiß, dann kann man das sehr wohl klugscheissen nennen.

Aber wo wir schon dabei sind, dann könntest Du ja auch mal an Deiner Rechtschreibung arbeiten.
Solch eklatante Fehler kann ich nämlich nicht akzeptieren
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 23.10.10, 18:09   #19
tfc
Anfänger
 
Registriert seit: Jun 2009
Beiträge: 3
Bedankt: 7
tfc ist noch neu hier! | 0 Respekt Punkte
Standard

"richtigstellen" schreibt man zusammen.
tfc ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 Uhr.


Sitemap

().