<?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[Objekte auf dem Heap -&amp;gt; Methodenzugriff?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein kleines Problem mit Objekten, die ich auf dem Heap erzeugt habe. Hier erstmal der Code:</p>
<pre><code class="language-cpp">Karte *koenigKarte1 = new Karte(*stapelAuswahl);
</code></pre>
<p>stapelAuswahl ist in dem Fall ein Zeiger auf die erste Stelle eines Arrays.</p>
<p>Das Problem ist nun, dass ich außerhalb der Klasse, in der ich das Objekt so erzeugt habe, nicht darauf zugreifen kann. Soweit ich das verstanden habe, sollte das Objekt doch auch nach der Laufzeit der Klasse noch zugänglich sein, oder? Ich versuche, das Objekt in der main mit folgendem Befehl anzusprechen:</p>
<pre><code class="language-cpp">koenigKarte-&gt;getName();
</code></pre>
<p>getName() ist natürlich eine Methode des Objekts Karte.<br />
Kann mir da einer weiterhelfen?</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235878/objekte-auf-dem-heap-gt-methodenzugriff</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 17:33:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235878.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Mar 2009 20:45:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 20:45:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein kleines Problem mit Objekten, die ich auf dem Heap erzeugt habe. Hier erstmal der Code:</p>
<pre><code class="language-cpp">Karte *koenigKarte1 = new Karte(*stapelAuswahl);
</code></pre>
<p>stapelAuswahl ist in dem Fall ein Zeiger auf die erste Stelle eines Arrays.</p>
<p>Das Problem ist nun, dass ich außerhalb der Klasse, in der ich das Objekt so erzeugt habe, nicht darauf zugreifen kann. Soweit ich das verstanden habe, sollte das Objekt doch auch nach der Laufzeit der Klasse noch zugänglich sein, oder? Ich versuche, das Objekt in der main mit folgendem Befehl anzusprechen:</p>
<pre><code class="language-cpp">koenigKarte-&gt;getName();
</code></pre>
<p>getName() ist natürlich eine Methode des Objekts Karte.<br />
Kann mir da einer weiterhelfen?</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675859</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 20:45:07 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:03:38 GMT]]></title><description><![CDATA[<p>Hm... Ist das jetzt ein Tipp-Fehler oder steht bei dir im Programm auch einmal koenigKart<strong>e1</strong> und einmal koenigKart<strong>e</strong>? Du hast ja nicht beschrieben, wo der Fehler auftaucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675874</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:06:48 GMT]]></title><description><![CDATA[<p>Ups, dass ist ein Tippfehler hier im Forum xD Es soll natürlich so heißen:</p>
<pre><code class="language-cpp">koenigKarte1-&gt;getName();
</code></pre>
<p>Die Fehler, die beim Compilieren kommen, sind folgende:</p>
<pre><code>error C2065: 'koenigKarte1': nichtdeklarierter Bezeichner
error C2227: Links von &quot;-&gt;getName&quot; muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
</code></pre>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675875</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:06:48 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:09:22 GMT]]></title><description><![CDATA[<p>Naja, steht die <code>Karte *koenigKarte1 = new Karte(*stapelAuswahl);</code> genau so im Code? Wie soll <code>main</code> die Variable dann kennen, wenn du das in einer Klassenmethode machst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675878</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:14:08 GMT]]></title><description><![CDATA[<p>Hmmm...<br />
Kannst du mir dann vielleicht einen Tipp geben, wie ich das lösen könnte? Ich habe eine Klasse <em>Karte</em>, von der ich mehrere Objekte erzeugen möchte. Dazu benutze ich zurzeit die Klasse <em>Kartenfabrik</em>. Ich weiß jetzt nicht, was du alles wissen musst, deswegen erstmal die Idee, die ich habe.</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675881</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:21:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Kartenfabrik
{
    public:
        Karte* erzeugeKarte ()
        {
            Karte *karte = new Karte ();
            return karte;
        }
};
</code></pre>
<pre><code class="language-cpp">Kartenfabrik kf;
Karte *karte = kf.erzeugeKarte ();
karte-&gt;getName ();
</code></pre>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1675885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675885</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:47:02 GMT]]></title><description><![CDATA[<blockquote>
<p>stapelAuswahl ist in dem Fall ein Zeiger auf die erste Stelle eines Arrays.</p>
</blockquote>
<p>Das ist da schon mal falsch. Das ist lediglich ein Zeiger auf eine Karte.</p>
<p>Dann verstehe ich das so, dass du dein Obejkt von überall zugreifbar haben willst, aber das ist keine gute Idee. Wenn du Infos haben willst, kannst du das über Memberfunktionen zurückgeben, oder allenfalls eine Funktion haben, die dir einen Zeiger/Referenz auf das Obejekt zurückgibt.</p>
<p>Die Methode von devkid ist gefährlich, da nicht klar ist, wer denn jetzt für die Verwaltung des Speichers zuständig ist. Man kann das gleich so lösen, dass die Fabrik das Objekt verwaltet, allerdings hat man ein Problem, wenn das Objekt ungültig ist, dass da immernoch Zeiger drauf verweisen können. Da würden dann Smart Pointer wieder helfen.</p>
<p>Eine andere Möglichkeit wäre, dass man eine Funktion der Fabrik hat, die den Speicher wieder freigibt ( free_card(card* c), oder so). Den Aufruf überlässt man dann wieder dem Erzeuger der Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675898</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 21:53:09 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Das ist lediglich ein Zeiger auf eine Karte.</p>
</blockquote>
<p>Wenn er sagt, dass es ein Zeiger auf ein Array ist, wird das schon stimmen. Woher willst du wissen, dass es anders ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> (Ich glaube du solltest dir die Code-Zeile noch mal angucken. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
<p>drakon schrieb:</p>
<blockquote>
<p>Die Methode von devkid ist gefährlich, da nicht klar ist, wer denn jetzt für die Verwaltung des Speichers zuständig ist. Man kann das gleich so lösen, dass die Fabrik das Objekt verwaltet, allerdings hat man ein Problem, wenn das Objekt ungültig ist, dass da immernoch Zeiger drauf verweisen können. Da würden dann Smart Pointer wieder helfen.</p>
</blockquote>
<p>Das war jetzt bloß ein Beispiel, dass er return verwenden soll, um an die Member der Klasse zu kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675899</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sat, 07 Mar 2009 21:53:09 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:13:50 GMT]]></title><description><![CDATA[<p>Die Variable &quot;stapelAuswahl&quot; zeigt auf einen Array, das stimmt soweit schon.<br />
Danke für eure Hilfen! Wenn ich das jetzt richtig verstanden habe, kann ich immer nur aus der Methode, in der ich das Objekt erzeugt habe, darauf zugreifen, oder?</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675906</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:05:44 GMT]]></title><description><![CDATA[<p>devkid schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Das ist lediglich ein Zeiger auf eine Karte.</p>
</blockquote>
<p>Wenn er sagt, dass es ein Zeiger auf ein Array ist, wird das schon stimmen. Woher willst du wissen, dass es anders ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> (Ich glaube du solltest dir die Code-Zeile noch mal angucken. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
</blockquote>
<p>Ah, sorry. Mein Fehler. Habe die Bezeichner nicht richtig migelesen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675907</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:09:14 GMT]]></title><description><![CDATA[<p>Neras schrieb:</p>
<blockquote>
<p>Danke für eure Hilfen! Wenn ich das jetzt richtig verstanden habe, kann ich immer nur aus der Methode, in der ich das Objekt erzeugt habe, darauf zugreifen, oder?</p>
</blockquote>
<p>Nein. Du kannst den Zeiger ja so rumreichen, wie du willst. Die Bezeichner sind einfach nur lokal gültig. (Also wenn sie in einer Funktion deklariert wurden in der Funktion, wenn sie in einer Klasse definiert wurden nur in Elementmethoden der Klasse usw.)</p>
<p>Das Objekt lebt so lange, wie du es leben lässt (wenn du es dynamisch anforderst). Und zugreifen kann jeder, der einen Zeiger darauf besitzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675908</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:09:14 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:13:29 GMT]]></title><description><![CDATA[<p>Ah, ok, das hab ich jetzt verstanden ^^<br />
Wenn ich jetzt das Beispiel von devkid nehme und folgendes schreibe:</p>
<pre><code class="language-cpp">Karte *koenigKarte1 = spiel.karteErzeugen(pStapelAuswahl);
</code></pre>
<p>(pStapelAuswahl ist der Zeiger auf den Array von eben, heißt jetzt nur anders =D) wie kann ich dann einen Zeiger oder ähnliches erzeugen, um auf das Objekt von &quot;überall&quot; her aus zuzugreifen? &quot;Überall&quot; halt in dem Sinne, wer alles den Zeiger hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675911</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:13:29 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:19:28 GMT]]></title><description><![CDATA[<p>Üblicherweise sind Fabrikfunktionen ja statisch, aber egal.</p>
<p>Das rumreichen geschieht dann über setter und getter..</p>
<pre><code class="language-cpp">foo f;
bar b;

b.set_karte ( f.get_karte() );

b.mache_irgendetwas_mit_kart ();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1675915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675915</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:19:28 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:25:23 GMT]]></title><description><![CDATA[<p>Kannst du mir das genauer erklären, was du damit meinst, dass Fabrikfunktionen normalerweise statisch sind? Meine <em>Fabrik</em> stellt die Karten des Spiels her und gibt sie dann an die <em>Spielverwaltung</em> zurück.</p>
<p>Zu deinen Gettern und Settern:<br />
Ich habe das schon versucht, doch wie soll ich dem Getter sagen, welches Objekt er zurückgeben soll, wenn ich doch momentan sowieso nur aus der einen Methode auf die Objekte zugreifen kann?</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675919</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:34:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
   public:
   static foo* create ();

   private:
   foo(); //private aus welchen gründen auch immer
};

...

foo::create(); //nur über diese Funktion erstellen und muss daher statisch sein,da das hier:
foo f; //nicht geht, da default ctor private ist.
</code></pre>
<p>Beim anderen weiss ich nicht genau, was du meinst. Zeig mal konzeptionellen Code. Ich denke mal, dass du da was falsch designst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675927</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:40:06 GMT]]></title><description><![CDATA[<p>Main:</p>
<pre><code class="language-cpp">Spielverwaltung neuesSpiel;
</code></pre>
<p>(Aufruf der Spielverwaltung)</p>
<p>Klasse Spielverwaltung:</p>
<pre><code class="language-cpp">spielStarten();
</code></pre>
<p>(im Konstruktor wird das Spiel gestartet)</p>
<p>Methode spielStarten() aus Spielverwaltung:</p>
<pre><code class="language-cpp">Kartenfabrik spiel(pStapelAuswahl);
Karte *koenigKarte1 = spiel.karteErzeugen(pStapelAuswahl);
</code></pre>
<p>(Hier wird eine neue Kartenfabrik erzeugt, womit dann ein Objekt des Typs Karte erstellt wird.)</p>
<p>Methode karteErzeugen() aus Kartenfabrik:</p>
<pre><code class="language-cpp">Karte* Kartenfabrik::karteErzeugen(string *stapelAuswahl)
{
	Karte *karte = new Karte(*stapelAuswahl);
    return karte;
}
</code></pre>
<p>(Das ist die Methode, die oben in spielStarten() benutzt wird.)</p>
<p>Ich hoffe, du kannst mir daran weiterhelfen ^^°</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675929</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:40:06 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:49:33 GMT]]></title><description><![CDATA[<p>Wo ist das Problem? - koenigKarte1 zeigt ja auf eine Karte, die in der Fabrik erzeugt wurde..</p>
<p>Die Karten werden ja, so, wie ich das sehe in Spielverwaltung erzeugt und du willst da drin auf die Karten zugreifen, oder? - Das ist ja kein Problem, da du die Karten ja speichern kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675935</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:49:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 22:59:05 GMT]]></title><description><![CDATA[<p>Sorry, wenn ich jetzt ziemlich auf dem Schlauch stehe, aber ich weiß nicht, wie ich auf die Objekte zugreifen soll. Jede Karte (es sind 10 Stück) wird mit</p>
<pre><code class="language-cpp">Karte *koenigKarte1 = spiel.karteErzeugen(pStapelAuswahl);
</code></pre>
<p>erzeugt und das in einer Methode der Spielverwaltung. Wenn ich jetzt in einer anderen Methode auf die Methoden der Karte zugreifen möchte, geht das aus irgendwelchen Gründen nicht. Ich nehme mal an, dass</p>
<pre><code class="language-cpp">koenigKarte1-&gt;getName();
</code></pre>
<p>falsch ist?! Im Endeffekt soll der Ablauf so aussehen:<br />
1. Erstelle <em>10 Objekte des Typs Karte</em> auf dem <em>Heap</em> in der <em>Spielverwaltung</em> mit der <em>Methode aus der Kartenfabrik</em>.<br />
2. Greife aus der <em>Spieleverwaltung</em> auf die <em>Methoden der erstellten Objekte</em> zu.<br />
Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675941</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 22:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 23:03:31 GMT]]></title><description><![CDATA[<p>Ich gehe jetzt mal davon aus, dass du die Karten in einer Schleife erzeugst.</p>
<p>Dann kansnt du doch die Zeiger ganz einfach in einen Container pushen.</p>
<pre><code class="language-cpp">std::vector&lt;karte*&gt; karten; //in kartenverwaltung
...
while (..)
{
Karte *koenigKarte1 = spiel.karteErzeugen(pStapelAuswahl);	
karten.push_back ( koenigKarte1 ); //pushen
}

...

//irgendwann
std::cout &lt;&lt; karten[0]; //oder sont was mit dem ersten Element machen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1675942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675942</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 23:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 23:06:52 GMT]]></title><description><![CDATA[<p>Wie kann ich 10 Objekte in einer Schleife erstellen, die dann alle <em>koenigKarte1</em> heißen? Oder verkenne ich das gerade? Momentan habe ich zehn new-Anweisungen, die mir meine Objekte erzeugen.</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675944</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 23:06:52 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 23:12:45 GMT]]></title><description><![CDATA[<p>Das ist nur ein temporäres Objekt, dass nur die Zeiger hält, welcher ja gleich wieder gepusht wird und somit nicht mehr wichtig ist.</p>
<p>Allerdings habe ich das Gefühl, dass du den Sinn von dynamsichen Speicher nicht ganz begriffen hast.</p>
<p>Warum hast du z.B nicht einfach ein Array von Karten, wo alle drin sind?</p>
<pre><code class="language-cpp">Karte karten[10];
</code></pre>
<p>Ganz einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675946</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 23:12:45 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 23:19:15 GMT]]></title><description><![CDATA[<p>Der Sinn von dynamischem Speicher ist für mich an dieser Stelle, dass ich entscheiden kann, wielange meine Kartenobjekte leben, was für mich zu dem Zeitpunkt, an dem ich über die Implementierung nachgedacht habe, wichtig war.</p>
<p>Wenn ich <em>Karte karten[10]</em> schreibe, dann habe ich ja nur einen Container für meine Karten, richtig? Dann erstelle ich meine Objekte und speichere sie in den Array?</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675949</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 23:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 23:23:51 GMT]]></title><description><![CDATA[<p>Das sind dann 10 Objekte von dem Typ, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675950</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Mar 2009 23:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sat, 07 Mar 2009 23:49:04 GMT]]></title><description><![CDATA[<p>Die Antwort war ja jetzt denkbar knapp gehalten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wenn ich allerdings versuche, in meiner Spielverwaltung ein Kartenarray zu erzeugen, dann spuckt mir der Compiler den Fehler aus, dass kein geeigneter Standardkonstruktor verfügbar ist.</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675960</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sat, 07 Mar 2009 23:49:04 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sun, 08 Mar 2009 11:46:11 GMT]]></title><description><![CDATA[<p>Dann stellst du den halt zur Verfügung. (und machst die Initialisierungswerte halt nachher rein). Oder benutzt gleich einen Container, à la std::vector, std::tr1::array oder boost::array. Die kannst du auch mit einem selbst definiertem Konstruktor benutzen.</p>
<p>Das Problem ist halt, dass du einen riesen Umweg machen willst, der überhaupt nicht nötig ist und daher verstehe ich nicht ganz, was du willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676055</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 08 Mar 2009 11:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte auf dem Heap -&amp;gt; Methodenzugriff? on Sun, 08 Mar 2009 11:53:01 GMT]]></title><description><![CDATA[<p>Ok, ich habe es jetzt mit dem vector geschafft... ich weiß nicht, warum es gestern nicht geklappt hat... vielleicht wars einfach zu spät xD Es sieht jetzt so aus:</p>
<pre><code class="language-cpp">int y = 0;
	while(y &lt; 10)
	{
		Karte *koenigKarte1 = karteErzeugen(stapelAuswahl);
		karten.push_back(koenigKarte1);
		stapelAuswahl++;
		y++;
	}
</code></pre>
<p>Dann übertrage ich den Vector aus der Kartenfabrik in die Spielverwaltung:</p>
<pre><code class="language-cpp">vector&lt;Karte*&gt; Kartenfabrik::getKarten()
{
	return karten;
}
</code></pre>
<pre><code class="language-cpp">Kartenfabrik spiel(pStapelAuswahl);
	spielKarten = spiel.getKarten();
</code></pre>
<p>Und dann versuche ich einen Zeiger auf die erste Stelle des Vectors zu erstellen:</p>
<pre><code class="language-cpp">Karte** koenigKarte1;
[...]
koenigKarte1 = &amp;spielKarten[0];
</code></pre>
<p>Ob das jetzt auf den ersten Blick Sinn ergibt, ist egal, jedoch hat sich da bei mir ein Fehler eingeschlichen, da ich nicht auf das Kartenobjekt zugreifen kann, wenn ich den Zeiger benutze.</p>
<p>Grüße,<br />
Neras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676058</guid><dc:creator><![CDATA[Neras]]></dc:creator><pubDate>Sun, 08 Mar 2009 11:53:01 GMT</pubDate></item></channel></rss>