<?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[Frage zu Code]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class A{

public:
	 void foo(){};

};

class B:A{
public:
	 void foo(){cout&lt;&lt;&quot;Das ist Klasse B&quot;;};

};

void main(void)
{

B* x=new A;  //Warum geht das nicht ???? 

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/259171/frage-zu-code</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 23:08:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259171.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Jan 2010 00:07:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 00:07:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class A{

public:
	 void foo(){};

};

class B:A{
public:
	 void foo(){cout&lt;&lt;&quot;Das ist Klasse B&quot;;};

};

void main(void)
{

B* x=new A;  //Warum geht das nicht ???? 

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1841744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841744</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 00:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 00:10:16 GMT]]></title><description><![CDATA[<p>Weil B ein A ist, aber A ist kein B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841747</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 20 Jan 2010 00:10:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 00:24:19 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">A* x=new B;
</code></pre>
<p>Das geht aber auch nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841751</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 00:24:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 00:32:10 GMT]]></title><description><![CDATA[<p>ich versteh das nicht.</p>
<p>A ist vollständig in B enthalten.</p>
<p>Also wieso kein Zeiger B* ptr=new A;</p>
<p>Macht das keinen Sinn ? versteh ich nicht .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841753</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 00:32:10 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 02:23:01 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">A* x=new B;
</code></pre>
<p>Das geht aber auch nicht</p>
</blockquote>
<p>Mach mal public-Vererbung:</p>
<pre><code class="language-cpp">...
class B : public A{
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1841757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841757</guid><dc:creator><![CDATA[sdfgmdgh]]></dc:creator><pubDate>Wed, 20 Jan 2010 02:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 07:14:05 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>ich versteh das nicht.</p>
<p>A ist vollständig in B enthalten.</p>
<p>Also wieso kein Zeiger B* ptr=new A;</p>
<p>Macht das keinen Sinn ? versteh ich nicht .</p>
</blockquote>
<p>Jedes B ist ein A aber nicht jedes A ist ein B. Damit kann ich einen Zeiger auf B auch einem Zeiger auf A zuweisen aber nicht umgekehrt.</p>
<p>Oder anders: wenn Du über ptr, welches ein Zeiger auf B ist, auf Eigenschaften zugreifen möchtest, die in B sind, aber nicht in A, dann kann es nicht gehen, wenn es auf eine Instanz vom Typ A zeigen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841778</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 20 Jan 2010 07:14:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 08:30:20 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Jedes B ist ein A aber nicht jedes A ist ein B.</p>
</blockquote>
<p>Mit der nichtöffentlichen Vererbung ist ein B nur für Freunde von B auch ein A <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="🙂"
    /> (Um die Verwirrung mal komplett zu machen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841802</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 20 Jan 2010 08:30:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 08:32:52 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>A ist vollständig in B enthalten.</p>
</blockquote>
<p>Soweit richtig. Sehr vereinfach dargestellt:</p>
<pre><code>Klasse B:          Klasse A:

&lt;A-Anteil&gt;         &lt;A-Anteil&gt;
&lt;B-Anteil&gt;
</code></pre>
<p>blurry333 schrieb:</p>
<blockquote>
<p>Also wieso kein Zeiger B* ptr=new A;</p>
</blockquote>
<p>Weil ein B-Zeiger auch erwartet, das es einen B-Anteil gibt.</p>
<p>Umgekehrt (mit public-Vererbung und möglichst virtuellen Destruktor [Das ist aber ein anderes Thema]) ist es wiederum möglich, da ein Zeiger auf A einen A-Anteil erwartet und B diesen besitzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841803</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 20 Jan 2010 08:32:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 12:34:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class A{    //Person

public:
	 void foo(){};

};

class B:public A{                 //Mitarbeiter
public:
	 void foo(){cout&lt;&lt;&quot;Das ist Klasse B&quot;;};

};

void main(void)
{

A* x=new B; //funktioniert
B* y=new A; // funktioniert nicht, 
            //Aber jeder Mitarbeiter ist doch eine Person ?

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1841955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841955</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 12:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 12:36:58 GMT]]></title><description><![CDATA[<p>aso asc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841957</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 12:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 12:38:43 GMT]]></title><description><![CDATA[<p>mit diesem Zeigerkonzept ist es mir eh ungeheuerlich</p>
<p>ich frage mich warum ein zeiger einen Typ hat.</p>
<p>Warum nicht jeden Zeiger auf alles zeigen lassen.</p>
<p>Schließlich hat er immer 4 Byte gespeichert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841958</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 12:38:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 12:42:44 GMT]]></title><description><![CDATA[<p>Warum ist A* x=new A;</p>
<pre><code class="language-cpp">class A{    

public:
	 void foo(){};

private:

	int x;
	char k;

};
</code></pre>
<p>sizeof(x) ist 8Byte : also int = 4 Byte und char = 1 Byte . Wieso also 8 Byte ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841961</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Wed, 20 Jan 2010 12:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 12:47:36 GMT]]></title><description><![CDATA[<p>Weil man nicht ohne weiteres 1 Byte an Speicher anfordern kann. 4 Byte = 32bit. <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>Mach aus k ein char Array (char k[4]) und guck nochmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841962</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 20 Jan 2010 12:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 13:22:18 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">A* x=new B; //funktioniert
B* y=new A; // funktioniert nicht, 
            //Aber jeder Mitarbeiter ist doch eine Person ?
</code></pre>
</blockquote>
<p>Aber nicht alle Personen sind Mitarbeiter. Und genau dagegen verstößt du im zweiten Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841992</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 20 Jan 2010 13:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 13:45:20 GMT]]></title><description><![CDATA[<blockquote>
<p>ich frage mich warum ein zeiger einen Typ hat.</p>
</blockquote>
<p>Damit der Compiler bei Zeigerarithmetik weiß was für ein Typ hinter dem Zeiger steckt. Damit kann man ein paar Sicherheitsüberprüfungen einbauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1842009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1842009</guid><dc:creator><![CDATA[Tyrdal]]></dc:creator><pubDate>Wed, 20 Jan 2010 13:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Code on Wed, 20 Jan 2010 15:54:08 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Warum nicht jeden Zeiger auf alles zeigen lassen.</p>
</blockquote>
<p>C++ ist eine Typsichere Sprache und wenn so etwas erlaubt wäre, könnte man gleich alle Typen weglassen und dann hätten wir sehr viel Laufzeitoverhead, weil dann erst bestimmt wird, was für Methoden überhaupt aufgerufen werden können. (Aber da kann man dann gleich Python o.ä. her nehmen und braucht kein C++ mehr).</p>
<p>Zusätzlich zum Sicherheitsaspekt gibts natürlich auch noch Performance Sachen, die man ohne den genauen Typen zur Kompilierzeit zu kennen nicht möglich wären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1842093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1842093</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 20 Jan 2010 15:54:08 GMT</pubDate></item></channel></rss>