<?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[Was bedeutet B &amp;amp;b = *new B;]]></title><description><![CDATA[<p>Hallo,</p>
<p>was bedeutet</p>
<pre><code>B &amp;b = *new B;
</code></pre>
<p>B ist ein struct. Ein Zeiger wird auf eine Adresse zugewiesen? Sorry, es ist eine Anfängerfrage aber auch ziemlich verwirrend, wenn man davor nur in Java programmiert hat.<br />
Gibt es eventuell eine Seite, wo alle möglichen Zuweisungen zwischen Adressen, Zeigern usw. verständlich erklärt sind?</p>
<p>Grüße<br />
Markus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327035/was-bedeutet-b-amp-b-new-b</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 20:24:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327035.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Jul 2014 13:57:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 13:57:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>was bedeutet</p>
<pre><code>B &amp;b = *new B;
</code></pre>
<p>B ist ein struct. Ein Zeiger wird auf eine Adresse zugewiesen? Sorry, es ist eine Anfängerfrage aber auch ziemlich verwirrend, wenn man davor nur in Java programmiert hat.<br />
Gibt es eventuell eine Seite, wo alle möglichen Zuweisungen zwischen Adressen, Zeigern usw. verständlich erklärt sind?</p>
<p>Grüße<br />
Markus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409529</guid><dc:creator><![CDATA[Markuslab]]></dc:creator><pubDate>Sun, 20 Jul 2014 13:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 14:04:17 GMT]]></title><description><![CDATA[<p>Damit wird eine Referenz angelegt. Eine Referenz hat den Vorteil, dass sie immer gültig ist. Da new auch fehlschlagen kann, ist das nicht ganz so geschickt. Außerdem ist damit nicht mehr sofort zu erkennen, dass es sich um dynamischen Speicher handelt, der auch mit delete wieder freigeben werden muss.</p>
<p>Besser ist daher:</p>
<pre><code>B *b = new B;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2409532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409532</guid><dc:creator><![CDATA[jhkhjkhjk]]></dc:creator><pubDate>Sun, 20 Jul 2014 14:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 14:16:06 GMT]]></title><description><![CDATA[<p>Vielen Dank aber wieso ruft</p>
<pre><code>B b;
</code></pre>
<p>in diesem Beispiel zwei mal den Konstruktur A auf?</p>
<pre><code>#include &lt;iostream&gt;
struct A {
	A() {
		std::cout &lt;&lt; &quot;Konstruktor A\n&quot;;
	}
	~A() {
		std::cout &lt;&lt; &quot;Destruktor A\n&quot;;
	}
	void funk1() {
		std::cout &lt;&lt; &quot;funkA1\n&quot;;
	}
	virtual void funk() {
		std::cout &lt;&lt; &quot;funkA\n&quot;;
	}
} a;

struct B : public A {
	B() {
		std::cout &lt;&lt; &quot;Konstruktor B\n&quot;;
	}
	~B() {
		std::cout &lt;&lt; &quot;Destruktor B\n&quot;;
	}
	virtual void funk() {
		std::cout &lt;&lt; &quot;funkB\n&quot;;
	}
	virtual void funk1() {
		std::cout &lt;&lt; &quot;funkB1\n&quot;;
	}
};

int main() {
	B b;
	//B &amp;b = *new B;
	a.funk1();
	a.funk();
	b.funk1();
	b.funk();
	A *p = &amp;a;
	p-&gt;funk();
	p-&gt;funk1();
	p = &amp;b;
	p-&gt;funk();
	p-&gt;funk1();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2409534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409534</guid><dc:creator><![CDATA[Markuslab]]></dc:creator><pubDate>Sun, 20 Jul 2014 14:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 14:22:34 GMT]]></title><description><![CDATA[<p>Einmal Zeile 15 (globales Objekt a) und einmal Zeile 33 (&quot;B b;&quot;).</p>
<p>B erbt von A. Wenn ein Objekt vom Typ B erstellt wird, wird zuerst der Konstruktor von A aufgerufen, dann der von B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409537</guid><dc:creator><![CDATA[trollfeed]]></dc:creator><pubDate>Sun, 20 Jul 2014 14:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 14:25:20 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409538</guid><dc:creator><![CDATA[Markuslab]]></dc:creator><pubDate>Sun, 20 Jul 2014 14:25:20 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 14:33:04 GMT]]></title><description><![CDATA[<p>Upsi, da ist mir direkt ein dummer Fehler unterlaufen.<br />
@trollfeed: Entschuldige dass dein Post verschwunden ist, das war reines Versehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409539</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 20 Jul 2014 14:33:04 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 14:59:11 GMT]]></title><description><![CDATA[<p>jhkhjkhjk schrieb:</p>
<blockquote>
<p>Da new auch fehlschlagen kann, ist das nicht ganz so geschickt.</p>
</blockquote>
<p>Warum?</p>
<blockquote>
<p>Außerdem ist damit nicht mehr sofort zu erkennen, dass es sich um dynamischen Speicher handelt, der auch mit delete wieder freigeben werden muss.</p>
<p>Besser ist daher:</p>
<pre><code>B *b = new B;
</code></pre>
</blockquote>
<p>Noch besser wäre ein unique_ptr, dann muss sich niemand mehr um das Freigeben kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409541</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 20 Jul 2014 14:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 20 Jul 2014 15:43:43 GMT]]></title><description><![CDATA[<p>Nur weil das noch niemand so deutlich gesagt hat: Sowas wie B &amp;b = *new B; tut man nicht. Es ist vergleichbar mit einem Auto, wo der Rückwärtsgang vorwärts fährt. Allgemein sollte Code kein new enthalten, außer in der Eigenimplementation von make_unique.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409548</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 20 Jul 2014 15:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 27 Jul 2014 08:54:31 GMT]]></title><description><![CDATA[<p>Ich kenne die vom threadsteller beschriebene Syntax gar nich! Nur aus Neugierde, Was genau ist der Unterschied zwischen dem was ich kenne:</p>
<p>Foo *p= new Foo();</p>
<p>Und</p>
<p>Foo &amp;p = *new Foo();</p>
<p>..?</p>
<p>Gruesse und danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410661</guid><dc:creator><![CDATA[NullBockException]]></dc:creator><pubDate>Sun, 27 Jul 2014 08:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 27 Jul 2014 10:20:35 GMT]]></title><description><![CDATA[<p>Du kennst</p>
<pre><code class="language-cpp">int var;
int* pointer = &amp;var;
int&amp; reference = *pointer;
</code></pre>
<p>nicht? Das ist nichts anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410670</guid><dc:creator><![CDATA[Jodocus]]></dc:creator><pubDate>Sun, 27 Jul 2014 10:20:35 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet B &amp;amp;b = *new B; on Sun, 27 Jul 2014 14:09:37 GMT]]></title><description><![CDATA[<p>NullBockException schrieb:</p>
<blockquote>
<p>Foo &amp;p = *new Foo();</p>
</blockquote>
<p>Niemand mit einem Rest Verstand macht das.</p>
<p>Manuelle Speicherverwaltung ist sowieso schon fragwürdig genug, dafür gibts automatische Objekte und Smart-Pointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410689</guid><dc:creator><![CDATA[NullRatioException]]></dc:creator><pubDate>Sun, 27 Jul 2014 14:09:37 GMT</pubDate></item></channel></rss>