<?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[Variablenzugriff bei Vererbung]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein Problem, und zwar stürzt mein Programm immer ab.<br />
Ich habe zwei Klassen:</p>
<pre><code class="language-cpp">class K1
{
void Init(){stPointer=new Struktur[num]};

Struktur *stPointer;
int num;
}

class K2 : public K1
{
K1 *Dinge;
int num2;

void Load()
   {
   Init();

   Dinge = new K1[num2];
   Dinge[0]-&gt;Init();       //hier der Absturz
   }
}
</code></pre>
<p>Was der Fehler sein könnte ist, dass<br />
Dinge[0]-&gt;Init(); nicht auf K2::Dinge::stPointer; sondern auf K2::stPointer zugreift. Wisst ihr auf was da zugegriffen wird?</p>
<p>Peter-&gt;Dank(SEHR_VIEL);</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163085/variablenzugriff-bei-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:43:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163085.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Oct 2006 19:44:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Wed, 25 Oct 2006 19:44:59 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein Problem, und zwar stürzt mein Programm immer ab.<br />
Ich habe zwei Klassen:</p>
<pre><code class="language-cpp">class K1
{
void Init(){stPointer=new Struktur[num]};

Struktur *stPointer;
int num;
}

class K2 : public K1
{
K1 *Dinge;
int num2;

void Load()
   {
   Init();

   Dinge = new K1[num2];
   Dinge[0]-&gt;Init();       //hier der Absturz
   }
}
</code></pre>
<p>Was der Fehler sein könnte ist, dass<br />
Dinge[0]-&gt;Init(); nicht auf K2::Dinge::stPointer; sondern auf K2::stPointer zugreift. Wisst ihr auf was da zugegriffen wird?</p>
<p>Peter-&gt;Dank(SEHR_VIEL);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161448</guid><dc:creator><![CDATA[CPeter *Peter]]></dc:creator><pubDate>Wed, 25 Oct 2006 19:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 26 Oct 2006 12:19:45 GMT]]></title><description><![CDATA[<p>Du hast mehrere Fehler in deinem Programm.</p>
<p>Du willst anscheinend ein dynamisches Array von &quot;Kl&quot;-Objekten anlegen, dann solltest du besser die Klasse &quot;std::vector&quot; benutzen, denn sonst ist &quot;Dinge[0]&quot; bisher uninitialisert und deshalb crasht es dort.</p>
<p>Außerdem ist im Konstruktor der Klasse Kl die Variable &quot;num&quot; noch uninitialisiert (d.h. dort steht ein zufälliger Wert drin) und zu guter letzt fehlen noch in beiden Klassen die Destruktoren, welche jeweils mit &quot;delete [] ...&quot; den jeweiligen Speicher wieder freigeben sollten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161861</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 26 Oct 2006 12:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 26 Oct 2006 17:43:24 GMT]]></title><description><![CDATA[<p>Die Variable num wird schon initialisiert, das hab ich nur weggelassen.<br />
Und mit Vektoren hab ich es auch versucht, auch abgestürzt.<br />
Was ich eigentlich wissen will ist, auf welche stPointer Dinge[X]-&gt;Init();<br />
zugreift.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162117</guid><dc:creator><![CDATA[CPeter *Peter]]></dc:creator><pubDate>Thu, 26 Oct 2006 17:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 26 Oct 2006 19:13:37 GMT]]></title><description><![CDATA[<p>Dinge = new K1[num2];</p>
<p>das erzeugt zwar nen array von pointern auf K1, die pointer referenzieren aber noch auf nix. der folgende aufruf von Dinge[0] schiesst somit ins leere.</p>
<p>du musst das array anlegen und anschliessend für jedes element auch noch den speicher reservieren (new K1)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162166</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 26 Oct 2006 19:13:37 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 26 Oct 2006 21:25:52 GMT]]></title><description><![CDATA[<p>Unfug! Das ist ein Array von K1, nicht von Pointern auf K1. Folglich ist die Verwendung von Dinge[0] zulässig. Das hier allerdings:</p>
<p>Dinge[0]-&gt;Init();</p>
<p>sollte gar nicht kompilieren (es sei denn K1 überläd operator-&gt;). Sorry, aber mit so bruchstückhaftem Code ist es nun wirklich nicht möglich den Fehler ausfindig zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162238</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Thu, 26 Oct 2006 21:25:52 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 26 Oct 2006 21:46:40 GMT]]></title><description><![CDATA[<p>hey tatsächlich. wenn man nochmal in den code guckt, stellt man fest, dass es ja gar keine pointer sind. danke für den freundlichen hinweis du arsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162247</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 26 Oct 2006 21:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 02 Nov 2006 15:27:27 GMT]]></title><description><![CDATA[<p>ja und auf welches stPointer wird in Dinge[xyz]-&gt;Init() dann zugegriffen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167082</guid><dc:creator><![CDATA[CPeter *Peter]]></dc:creator><pubDate>Thu, 02 Nov 2006 15:27:27 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 02 Nov 2006 15:33:49 GMT]]></title><description><![CDATA[<p>Poste uns erstmal korrekten Code, dann sehen wir weiter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167089</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 02 Nov 2006 15:33:49 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenzugriff bei Vererbung on Thu, 02 Nov 2006 15:43:46 GMT]]></title><description><![CDATA[<p>Also wenn ich das richtig sehe, muss es schlicht und ergreifend</p>
<pre><code class="language-cpp">Dinge[0].Init();
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">Dinge[0]-&gt;Init();
</code></pre>
<p>heißen, da Init() ja ein(e) Element(methode) von K1 ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167100</guid><dc:creator><![CDATA[Conan_]]></dc:creator><pubDate>Thu, 02 Nov 2006 15:43:46 GMT</pubDate></item></channel></rss>