<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot;]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>seit 2 Tagen nun versuche ich es zu lösen und denke jetzt funktionierts aber es funktioniert immer noch nicht. Also um was geht es. Ihr wisst sicher eine schnelle Antwort.</p>
<p>Ich habe eine Klasse meinen Controller in welchem ich Objekte über den Konstruktor erzeuge. Die Objekte kann ich per getter und setter setzten oder holen. Jetzt habe ich mehrere Klassen welche immer auf das gleiche Objekt in der Klasse Controller zugreifen sollen. Ich will kein Singelton.</p>
<p>Was ich gemacht habe ist ich lasse die Klasse die den Controller aggregiert ein Objekt der Klasse Controller erstellen dieses Objekt erzeugt dann die anderen Objekte bin ich mit der Bearbeitung fertig übergibt sich das Objekt selbst an das Controller Objekt. Ich weiß ich habe genau hier einen Denkfehler aber wie schaffe ich es das alle aggregierende Klassen dasselbe Controller Objekte bearbeiten können? Kleine Zusatzinfo in der Controller Klasse ist ein Objekte einer Datamodel Klasse welche Daten speichert diese Daten sollte für alle aggregierenden Klassen abrufbar sein egal welches Klasse wann welche Daten geändert hat. Ich hoffe ich konnte mich verständlich ausdrücken wenn nicht Hilft hoffentlich das angehangene Klassendiagram.</p>
<p>Danke auf jeden Fall für eure Hilfe<br />
<a href="http://yfrog.com/j8problemmitobjektenj" rel="nofollow">http://yfrog.com/j8problemmitobjektenj</a><br />
Gruß bEKAR</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256504/ich-komm-einfach-nicht-drauf-quot-objekt-relationen-und-refenrenzen-quot</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 03:00:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256504.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Dec 2009 04:07:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Mon, 14 Dec 2009 04:07:38 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>seit 2 Tagen nun versuche ich es zu lösen und denke jetzt funktionierts aber es funktioniert immer noch nicht. Also um was geht es. Ihr wisst sicher eine schnelle Antwort.</p>
<p>Ich habe eine Klasse meinen Controller in welchem ich Objekte über den Konstruktor erzeuge. Die Objekte kann ich per getter und setter setzten oder holen. Jetzt habe ich mehrere Klassen welche immer auf das gleiche Objekt in der Klasse Controller zugreifen sollen. Ich will kein Singelton.</p>
<p>Was ich gemacht habe ist ich lasse die Klasse die den Controller aggregiert ein Objekt der Klasse Controller erstellen dieses Objekt erzeugt dann die anderen Objekte bin ich mit der Bearbeitung fertig übergibt sich das Objekt selbst an das Controller Objekt. Ich weiß ich habe genau hier einen Denkfehler aber wie schaffe ich es das alle aggregierende Klassen dasselbe Controller Objekte bearbeiten können? Kleine Zusatzinfo in der Controller Klasse ist ein Objekte einer Datamodel Klasse welche Daten speichert diese Daten sollte für alle aggregierenden Klassen abrufbar sein egal welches Klasse wann welche Daten geändert hat. Ich hoffe ich konnte mich verständlich ausdrücken wenn nicht Hilft hoffentlich das angehangene Klassendiagram.</p>
<p>Danke auf jeden Fall für eure Hilfe<br />
<a href="http://yfrog.com/j8problemmitobjektenj" rel="nofollow">http://yfrog.com/j8problemmitobjektenj</a><br />
Gruß bEKAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822176</guid><dc:creator><![CDATA[bEKAR]]></dc:creator><pubDate>Mon, 14 Dec 2009 04:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Mon, 14 Dec 2009 07:48:54 GMT]]></title><description><![CDATA[<p>Wenn du deine Struktur beibehalten möchtest gib den Klassen doch einfach einen Zeiger auf deinen Controller anstatt in jeder einen eigenen Controller zu erstellen.<br />
Dann können alle deine Objekte auf das Selbe Objekt zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822195</guid><dc:creator><![CDATA[Kahino]]></dc:creator><pubDate>Mon, 14 Dec 2009 07:48:54 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Mon, 14 Dec 2009 08:44:56 GMT]]></title><description><![CDATA[<p>erstmal Dankeschön für deine Antwort! nun,</p>
<p>genau das habe ich mir auch überlegt aber dann gefragt wie bekommen ich denn die die Objekteadresse vom Controllerobjekt in die Pointer? Irgendwo muss ich ja das Controller Objekt erzeugen am besten in der ersten aggregierenden Klasse nun muss die Adresse vom Objekt weitergegeben werden nur wie?</p>
<p>Danke für eure Hilfe!</p>
<p>Gruß bEKAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822199</guid><dc:creator><![CDATA[bEKAR]]></dc:creator><pubDate>Mon, 14 Dec 2009 08:44:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Mon, 14 Dec 2009 18:02:37 GMT]]></title><description><![CDATA[<p>Also irgendwo in deinem Quellcode wirst du deine Klassen die bis jetzt noch jeweils eine eigene Instanz dieses Controllers besitzen ja erzeugen, sonst gäbe es sie ja nicht.<br />
An der Stelle wo du diese Dinger nun erzeuggst, übergibst du halt einen Zeiger auf deinen Kontroller, entweder mit irgendeinem setter oder als Argument des Konstruktors deiner jeweiligen Objekte.</p>
<p>So als allgemeines Beispiel:</p>
<pre><code>Controller * controller = new Controller;

[...]

Class2 = new Class2(controller);

[...]

Class3 = new Class3(controller);

[...]

Class4 = new Class4(controller);
</code></pre>
<p>Um konkretere Tipps zu geben bräuchte man auch konkretere Informationen zu dem Programm das du da schreibst bzw. wie das aufgebaut ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1822448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1822448</guid><dc:creator><![CDATA[Kahino]]></dc:creator><pubDate>Mon, 14 Dec 2009 18:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Wed, 16 Dec 2009 22:10:37 GMT]]></title><description><![CDATA[<p>Danke Kahino für die Hilfe aber Ja ohne mehr Informationen kannst du mir wirklich nicht helfen ich werde jetzt mal etwas konkreter.</p>
<p>Ich implementiere in meiner Architektur das State und das Adapter Pattern.<br />
Unter dem Link findet ihr das Klassendiagram zudem ich noch einiges erklären muss.</p>
<p><a href="http://yfrog.com/j3stateundadapterpatternj" rel="nofollow">http://yfrog.com/j3stateundadapterpatternj</a></p>
<p>Wie gesagt ich habe dort das State und das Adapter Pattern implementiert. Die <strong>Controller</strong> Klasser verwaltet meine State die Schnittstelle bekomm ich vom <strong>State Interface</strong>. Im Controller erzeuge ich alle Objekte der Klassen mittels Konstruktor. Jeder State erzeugt sich sein Controller Objekte und kann dann mittels Getter und Setter die gebrauchten States setzten hier ein Beipsiel aus meinem Hauptmenü.</p>
<pre><code class="language-cpp">Controller maincont;
void MainMenu::getMenu()
{
cout&lt;-- gibt das MainMenu aus mann kann unterschiedliche Untermenüs auswählen.
cin&gt;&gt;eingabe
if(eingabe==1)
{ maincont.changeState(maincont.getSubMenuDBTypeObjekt());
maincont.getMenu();
</code></pre>
<p>Wie ihr seht erzeugt ich ein Objekt von Controller hole mir dann das Objekt vom nächsten Untermenü und rufen dann getMenu(); auf welche in Controller definiert ist und currentstate-&gt;getMenu(); das macht. Hier suche ich schon nach einer Lösung die mir es ermöglicht immer den gleichen Controller zu verwenden. I<br />
ch kann kein Pointer vom Typ Controller an die States übergeben da ich schon im Controller von State.h include.</p>
<p>Das zum State Pattern jetzt das Adapter und das worauf ich eigentlich hinaus will. Aber ich denke wenn ich weiß wie ich immer nur ein und daselbe Controller Objekte verwenden dann weiß ich auch meine zweites Problem zu lösen .Aber jetzt erstmal zum Adapter Pattern.</p>
<p>Wie Ihre im Klassendiagram seht erben <strong>SQLiteAdapter</strong> und <strong>MySQLAdapter</strong> von <strong>DBAdapter</strong>. <strong>SQLiteAdapter</strong> aggregiert seine Utulity Klasse und MySQL erstmal noch keine. <strong>SubMenuSQLite</strong> füllt den DBContainer mit Werten und auch welcher Adapter verwendet werdem soll. <strong>SubMenuSelectAllTables</strong> und <strong>SubMenuSelectSingleTables</strong> müssen die Werte und auf jeden Fall das Adapter Objekt abholen damit sie den richtigen Adapter aufrufen an welchen die jeweilige Table Select Methode hängt.</p>
<p>Phu nicht so einfach . Also ich möchte in allen Fällen die gleichen Objekte verwenden beim Controller wäre es mir Recht aber nur optional aber das Objekt DBContainer welches vom Controller erzeugt wird welcher aber auch von den States erzeugt wird(hier ist denk ich der Fehler) das muss umbedingt die selben werte haben wie das DBContainer Objekt welche von SubMenuSQLite geschrieben worde.</p>
<p>Danke für eure Hilfe!!!</p>
<p>mit freundlichen Grüßen</p>
<p>bEKAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1823765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1823765</guid><dc:creator><![CDATA[bEKAR]]></dc:creator><pubDate>Wed, 16 Dec 2009 22:10:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Thu, 17 Dec 2009 18:06:18 GMT]]></title><description><![CDATA[<p>In deinem Klassengeflecht ist ja irgendwie alles miteinander verbunden da musst du einfach aus dem Container heraus alles durchreichen.</p>
<p>Nur um zu klären ob ich dein Diagramm verstanden habe, bin mit dieser Notation nicht allzu vertraut.</p>
<p>Dein Controller enthält garantiert ein Objekt vom Typ DBContainer und ein Objekt vom Typ State (ausgefüllte Raute = Komposition ??).<br />
Wobei es sich bei State eben nur um ein Interface handelt, konkret erzeugt würden IM CONTROLLER Objekte Aller Kassen die von State Interface erben.</p>
<p>Um es nochmal andersherum auszudrücken. Alle deine Objekte die bis jetzt eines der Controller-Objekte enthalten, befinden sich quasi in deinem Controller Objekt als State(also SubMenuTables/SubMenuSelectAllTables usw.??).</p>
<p>Das Problem ist gar nicht so kompliziert. Du solltest mal nach der Begrifflichkeit Vorwärtsdeklaration suchen, damit sollten eigentlich alle deine Probleme gelöst werden.</p>
<pre><code>----- state.h --------

class Controller;

class State
{
   Controller * controller;
};

---- controller.h ------
#include &quot;state.h&quot;

class Controller
{
     State * state;
};
</code></pre>
<p>Jetzt kannst du dich entscheiden ob jetzt nun direkt State so einen Zeiger enthält, wodurch es jedoch nicht mehr wirklich ein Interface ist oder ob du bei den davon abgeleiteten Klassen die Controller-Instanz auf einen Zeiger-auf-Controller umänderst.</p>
<p>Auf Diese Weise haben jetzt schon einmal alle deine State-Abkömlinge solch einen Zeiger und demnach auch Zugriff auf ein und das Selbe DBConatainer-Objekt.<br />
Und weil dein DB-Container Objekt ja deine Adapter enthält, kann sich auch jeder deiner State-Abkömlinge diese Adapter abholen indem sie sich über den Controller-Zeiger einen Verweis auf das DBContainerObjekt holen und daraus dann die Adapter nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824098</guid><dc:creator><![CDATA[Kahino]]></dc:creator><pubDate>Thu, 17 Dec 2009 18:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Thu, 17 Dec 2009 18:28:57 GMT]]></title><description><![CDATA[<p>Danke für deine Antwort Kahino! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Werde mich daran halten melde mich wenn ich es geschafft oder eben nicht geschafft habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Danke in jeden Fall!</p>
<p>Gruß bEKAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824107</guid><dc:creator><![CDATA[bEKAR]]></dc:creator><pubDate>Thu, 17 Dec 2009 18:28:57 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Fri, 18 Dec 2009 15:14:11 GMT]]></title><description><![CDATA[<p>Danke Kahino ich habe es jetzt geschafft.</p>
<p>Ich habe die Vorwärtsdeklaration für State und Controller verwendet und die States erzeuge ich als Singleton. Meine DBContainer ist auch ein Singleton so habe ich bei jedem Zugriff auf die Klasse immer das gleiche Objekte und somit auch die gleichen Daten. Fits perfect!</p>
<p>Danke für &quot;eure&quot; deine Hilfe!</p>
<p>Gruß bEKAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824516</guid><dc:creator><![CDATA[bEKAR]]></dc:creator><pubDate>Fri, 18 Dec 2009 15:14:11 GMT</pubDate></item><item><title><![CDATA[Reply to Ich komm einfach nicht drauf. &amp;quot;Objekt Relationen und Refenrenzen&amp;quot; on Fri, 18 Dec 2009 19:45:08 GMT]]></title><description><![CDATA[<p>In deinem Ersten Posting hattest du doch erwähnt, dass du keine Singletons haben möchtest und das war in meinen Vorschlägen eigentlich schon berücksichtigt, soll heißen ginge auch ohne.<br />
Aber wenn das mit den Singletons für dich nun Ok ist, ist ja alles geklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824691</guid><dc:creator><![CDATA[Kahino]]></dc:creator><pubDate>Fri, 18 Dec 2009 19:45:08 GMT</pubDate></item></channel></rss>