Dreieckbeziehung mit C++
-
Hi.
Ich habe eon Problem mit der Umsetzung einer Sache in C++. Gegeben seien 3 Klassen. z.b. Klasse A, Klasse B und Klasse C.
Nun muss Klasse B und C auf A zugreifen. Nun sehe ich folgende Möglichkeiten:- B und C von A vererben
- in B und C ein lokales Attribut des Types A definieren
- in B und C einen Pointer auf Typ A deklarieren und Klasse A global einmal verfügbar machen.
- ich gehe völlig falsch an die Sache ran, da ich solche Programmiertechnik von C gewohnt bin und sehe nicht wie ich es mit C++ viel eleganter lösen könnte.
Meine Meinung zu den Lösungen:
zu 1) ungeschickt. Vor allem wenn größere Beziehungen zwischen Klassen entstehen.
zu 2) auch nicht das gelbe vom Ei da dann 2 Instanzen von A existieren die ich dann seperat initialisieren darf
zu 3) So bin ich es gewohnt, auch wenn einige überzeugte OOP'ler jetzt wahrscheinlich nen Fässchen Teer und nen paar Federn ausgraben
Ich habe die rein technischen Grundlagen von OOP soweit verstanden, allerdings hapert es bei mir enorm an dem umsetzten von Problemen, sprich die sinnvolle Verwendung. Auf das obig genannte Problem treffe ich ständig und wäre froh wenn mir jemand erklären könnte wie man am besten an sowas rangeht. Als kleines Beispiel damit es nicht so trocken ist:
Ich habe eine Artikeldatenbank aufgeteilt in Client und Server die via TCP/IP miteinander verbunden ist. Im Client habe ich nun diverse Objekte. z.B eins für Artikel, eins für Lieferanten, etc. Alle diese Objekte sollen sich selbst managen und mit dem Server selbstständig kommunizieren. Ich habe eine Socket-Klasse die sich um alle Verbindungen kümmert und den Datenaustausch vornimmt. Wie greife ich nun sinnvoll von meinen Stammdatenklassen auf das Socket-Objekt zu?Sven
-
- Wie sonst?
-
Habe diesen Lösungsansatz nur als zu C-typisch eingestuft, und dachte es gäbe Wege in C++ an dieses Problem von einer völlig anderen Seite ran zu gehen.
-
Socket-Klasse als Singleton?
-
@blub2k6
thx. Zwar noch nie was davon gehört, aber google spuckte mir ein paar intressante links aus.
-
Nicht irgendetwas zum Thema Singleton lesen, sondern dies hier: http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=Singleton#Answ
-
genau das habe ich gefunden

-
Was mir dabei einfällt:
Ich kann mittlerweile ein gutes Stück Erfahrung in C vorweisen, und fing nun an mich in C++ reinzuarbeiten. Die Hauptprobleme die ich habe sind wie erwähnt nicht die verhandenen techniken sondern wie ich sie am besten nutzen kann. Sprich die Umsetzung eines Problems in ein korrektes Programm. Wie auch immer "korrekt" hier zu deuten ist...
Entwurfsmuster scheinen viele dieser Probleme aufzugreifen und Lösungsansätze zu bieten. Macht es Sinn sich gleich entsprechende Literatur zu besorgen (z.B. "Modernes C++ Design" ISBN 3826613473) oder kann man dieses Wissen erst nutzen und verstehen, wenn man längere Zeit sich mit den Problemen auseinandergesetzt hat. Ein Koch schnibbelt am Anfang schließlich auch erstmal Gemüse bevor ihm größeres angetragen wird.
Ich frage nur, weil mein Bücherregal bald einzustürzen droht und ich keine Lust habe ein Buch zu kaufen, dass ich gleich wieder frustriert weglege.Sven