Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
13.10.10, 00:45
|
#1
|
Ist öfter hier
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
|
[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
|
|
|
13.10.10, 05:22
|
#2
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
[ 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.
|
|
|
13.10.10, 11:53
|
#3
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
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.
|
|
|
13.10.10, 13:28
|
#4
|
Ist öfter hier
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
|
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
|
|
|
13.10.10, 13:42
|
#5
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
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!
|
|
|
13.10.10, 14:43
|
#6
|
Grinsekatze
Registriert seit: Dec 2009
Beiträge: 25
Bedankt: 26
|
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*
|
|
|
13.10.10, 17:28
|
#7
|
Ist öfter hier
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
|
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
|
|
|
13.10.10, 18:38
|
#8
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
So schnell brauchst Du doch nicht aufgeben....
|
|
|
13.10.10, 20:19
|
#9
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
Zitat:
Zitat von PornoPenner
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.
|
|
|
13.10.10, 20:34
|
#10
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von germgerm
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...
|
|
|
13.10.10, 20:46
|
#11
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
@pornopenner:
falsche aussagen verwirren meiner meinung nach noch viel mehr.
waldfee hat einige gute literaturhinweise bekommen.
|
|
|
13.10.10, 21:51
|
#12
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
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...
|
|
|
14.10.10, 05:08
|
#13
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
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.
|
|
|
14.10.10, 07:43
|
#14
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
Zitat:
Zitat von PornoPenner
Aber man kann ja natürlich auch in der Fachsprache (die sie nicht verstehen wird) klugscheissen...
|
hat sich da wer ins knie geschossen?
|
|
|
16.10.10, 15:54
|
#15
|
Erfahrener Newbie
Registriert seit: May 2009
Beiträge: 116
Bedankt: 93
|
@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.
|
|
|
16.10.10, 17:41
|
#16
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
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
|
|
|
16.10.10, 21:19
|
#17
|
Erfahrener Newbie
Registriert seit: May 2009
Beiträge: 116
Bedankt: 93
|
Die Aussage, daß Objekte keine Klassen sind, nicht zu akzeptieren, ist für Dich also klugscheissen, ja?
|
|
|
16.10.10, 21:52
|
#18
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
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
|
|
|
23.10.10, 18:09
|
#19
|
Anfänger
Registriert seit: Jun 2009
Beiträge: 3
Bedankt: 7
|
"richtigstellen" schreibt man zusammen.
|
|
|
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
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 Uhr.
().
|