<?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[objekt in klasse anlegen und automatisch wieder den speicher freigeben]]></title><description><![CDATA[<p>hi,<br />
wie kann ich in einer klasse ein objekt einer anderen klasse anlegen, so das ich von alle methoden drauf zugreifen kann und der speicher für das objekt auch beim zerstören wieder automatisch freigegeben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272626/objekt-in-klasse-anlegen-und-automatisch-wieder-den-speicher-freigeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 20:25:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272626.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Aug 2010 19:07:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sat, 21 Aug 2010 19:07:14 GMT]]></title><description><![CDATA[<p>hi,<br />
wie kann ich in einer klasse ein objekt einer anderen klasse anlegen, so das ich von alle methoden drauf zugreifen kann und der speicher für das objekt auch beim zerstören wieder automatisch freigegeben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942834</guid><dc:creator><![CDATA[gotohome]]></dc:creator><pubDate>Sat, 21 Aug 2010 19:07:14 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sat, 21 Aug 2010 19:16:33 GMT]]></title><description><![CDATA[<p>An sich ist das nicht schwer.<br />
Das geht genau so, wie bei einer normalen Variablen:</p>
<pre><code class="language-cpp">class MyClass {
private:
    MyOtherClass m_object;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1942838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942838</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 21 Aug 2010 19:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sat, 21 Aug 2010 19:19:46 GMT]]></title><description><![CDATA[<p>danke erstmal, aber wie mache ich das wenn mein objekt was ich anlegen will gleich argumente übergeben will also das objekt einen eigenen konstruktor hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942840</guid><dc:creator><![CDATA[gotohome]]></dc:creator><pubDate>Sat, 21 Aug 2010 19:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sat, 21 Aug 2010 19:21:30 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
  ...
public:
  explicit foo(int);
};

class bar
{
  foo f;
public:
  bar()
  : f(1729) {}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1942842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942842</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 21 Aug 2010 19:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sat, 21 Aug 2010 19:22:12 GMT]]></title><description><![CDATA[<p>super ich glaube das is genau das was ich gesucht habe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942843</guid><dc:creator><![CDATA[gotohome]]></dc:creator><pubDate>Sat, 21 Aug 2010 19:22:12 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sun, 22 Aug 2010 09:07:00 GMT]]></title><description><![CDATA[<p>das hat so alles gut geklappt nun habe ich aber ein neues problem. ich habe zwei objekte die ich initialisieren muss aber eins hängt vom anderen ab. wie mache ich das?</p>
<pre><code class="language-cpp">class foo{
    bar1 b1;
    bar2 b2; // ist von b1 abhängig
public:
    foo() : b1(42), b2(b1.data()) {}
};
</code></pre>
<p>wie initialsieren ich b2 am besten damit bei zerstörung von foo auch der speicher für b2 freigegeben wird??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942916</guid><dc:creator><![CDATA[gotohome]]></dc:creator><pubDate>Sun, 22 Aug 2010 09:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sun, 22 Aug 2010 09:28:29 GMT]]></title><description><![CDATA[<p>gotohome schrieb:</p>
<blockquote>
<p>das hat so alles gut geklappt nun habe ich aber ein neues problem. ich habe zwei objekte die ich initialisieren muss aber eins hängt vom anderen ab. wie mache ich das?</p>
<pre><code class="language-cpp">class foo{
    bar1 b1;
    bar2 b2; // ist von b1 abhängig
public:
    foo() : b1(42), b2(b1.data()) {}
};
</code></pre>
<p>wie initialsieren ich b2 am besten damit bei zerstörung von foo auch der speicher für b2 freigegeben wird??</p>
</blockquote>
<p>Da gibt's keinen Unterschied zu einem Objekt, das passiert alles genau gleich. Das einzige worauf du aufpassen musst ist die Reihenfolge der Initialisierung, bei gegenseitiger Abhängigkeit. Diese geschieht nämlich so wie die Objekte in der Klasse deklariert sind, nicht in der Reihenfolge in der Initialisierungsliste. So wie du es jetzt hast, ist es schon richtig:</p>
<pre><code class="language-cpp">class foo1{
    bar1 b1;
    bar2 b2;
public:
    foo() : b1(42), b2(b1.data()) {}  // Ok, erst b1, dann b2(b1.data())
};

class foo2{
    bar1 b1;
    bar2 b2;
public:
    foo() : b2(b1.data()), b1(42) {}  // Sieht komisch aus, aber ok. das gleiche wie foo1
};

class foo3{
    bar2 b2;
    bar1 b1;
public:
    foo() : b1(42), b2(b1.data()) {}  // Oh, nein! b2 wird mit b1.data() initialisiert, aber b1 gibt es noch nicht!
};

class foo4{
    bar2 b2;
    bar1 b1;
public:
    foo() : b2(b1.data()), b1(42) {}  // So natürlich auch nicht. siehe foo3
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1942919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942919</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 22 Aug 2010 09:28:29 GMT</pubDate></item><item><title><![CDATA[Reply to objekt in klasse anlegen und automatisch wieder den speicher freigeben on Sun, 22 Aug 2010 09:37:34 GMT]]></title><description><![CDATA[<p>vielen vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942920</guid><dc:creator><![CDATA[gotohome]]></dc:creator><pubDate>Sun, 22 Aug 2010 09:37:34 GMT</pubDate></item></channel></rss>