<?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[Hilfe bei Polymorphie]]></title><description><![CDATA[<p>Hallo!</p>
<p>beim ausführen von nachfolgenden Programm bekomm ich immer bei der abschließenden ausgabe aller eingegebenen Werte einen Fehler:<br />
&quot;Im Projekt XY ist eine Exception der Klasse EAccessViolation aufgetreten ...&quot;<br />
Woran kann das liegen?</p>
<p>thx im voraus <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>
<pre><code class="language-csharp">dekl:

#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;

class Computer
{
protected:
 long nummer;

public:
 Computer(long);
 ~Computer();

 long getNummer()                                       {return nummer;}
 void setNummer(long nr)                                {nummer=nr;}

 virtual void eingabe();
 virtual void ausgabe() const;

};

class Intel : public Computer
{
private:
 int mhz;

public:
 Intel(long, int);
 ~Intel();

 int getMhz()                                           {return mhz;}
 void setMhz(int m)                                     {mhz=m;}

 void eingabe();
 void ausgabe() const;

};

class Amd : public Computer
{
private:
 int ram;

public:
 Amd(long, int);
 ~Amd();

 int getRam()                                           {return ram;}
 void setRam(int r)                                     {ram=r;}

 void eingabe();
 void ausgabe() const;

};

impl:

#include &quot;computer.h&quot;

Computer::Computer(long nr)
{
nummer=nr;
}

Computer::~Computer(){}

void Computer::eingabe()
{
cout&lt;&lt;&quot;Nummer: &quot;;
cin&gt;&gt;nummer;
}

void Computer::ausgabe() const
{
cout&lt;&lt;&quot;Nummer: &quot;&lt;&lt;nummer&lt;&lt;endl;
}

//////////////////////////////Intel/////////////////////////////////////////////

Intel::Intel(long nr, int m):
 Computer(nr),mhz(m)
{}

Intel::~Intel(){}

void Intel::eingabe()
{
cout&lt;&lt;&quot;Nummer: &quot;;
cin&gt;&gt;nummer;
cout&lt;&lt;&quot;Mhz: &quot;;
cin&gt;&gt;mhz;
}

void Intel::ausgabe()const
{
cout&lt;&lt;&quot;Nummer: &quot;&lt;&lt;nummer&lt;&lt;endl;
cout&lt;&lt;&quot;Mhz: &quot;&lt;&lt;mhz&lt;&lt;endl;
}

//////////////////////////////Amd///////////////////////////////////////////////

Amd::Amd(long nr, int r):
 Computer(nr),ram(r)
{}

Amd::~Amd(){}

void Amd::eingabe()
{
cout&lt;&lt;&quot;Nummer: &quot;;
cin&gt;&gt;nummer;
cout&lt;&lt;&quot;Ram: &quot;;
cin&gt;&gt;ram;
}

void Amd::ausgabe()const
{
cout&lt;&lt;&quot;Nummer: &quot;&lt;&lt;nummer&lt;&lt;endl;
cout&lt;&lt;&quot;Ram: &quot;&lt;&lt;ram&lt;&lt;endl;
}

main:

#include &quot;computer.h&quot;
#pragma hdrstop
#pragma argsused

int main(int argc, char* argv[])
{

Computer* pCom[20];
int auswahl, anzahl, i;

for(int i=0;i&lt;20;i++)
{

cout&lt;&lt;&quot;Bitte Wahl treffen&quot;&lt;&lt;endl;
cout&lt;&lt;&quot;1 = Intel    2 = AMD&quot;&lt;&lt;endl;

cin
&gt;&gt;auswahl;

if(auswahl&lt;1||auswahl&gt;2)
break;

switch(auswahl)
{
 case 1:
 pCom[i] = new Intel(123456, 2000);
 pCom[i]-&gt;eingabe();
 break;

 case 2:
 pCom[i] = new Amd(1234, 512);
 break;
}
}

anzahl=i;

for(i=0;i&lt;anzahl;i++)
{
 pCom[i]-&gt;ausgabe();
}
 delete pCom;

getch();
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/136279/hilfe-bei-polymorphie</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 10:25:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136279.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Feb 2006 19:05:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei Polymorphie on Wed, 08 Feb 2006 19:05:04 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>beim ausführen von nachfolgenden Programm bekomm ich immer bei der abschließenden ausgabe aller eingegebenen Werte einen Fehler:<br />
&quot;Im Projekt XY ist eine Exception der Klasse EAccessViolation aufgetreten ...&quot;<br />
Woran kann das liegen?</p>
<p>thx im voraus <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>
<pre><code class="language-csharp">dekl:

#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;

class Computer
{
protected:
 long nummer;

public:
 Computer(long);
 ~Computer();

 long getNummer()                                       {return nummer;}
 void setNummer(long nr)                                {nummer=nr;}

 virtual void eingabe();
 virtual void ausgabe() const;

};

class Intel : public Computer
{
private:
 int mhz;

public:
 Intel(long, int);
 ~Intel();

 int getMhz()                                           {return mhz;}
 void setMhz(int m)                                     {mhz=m;}

 void eingabe();
 void ausgabe() const;

};

class Amd : public Computer
{
private:
 int ram;

public:
 Amd(long, int);
 ~Amd();

 int getRam()                                           {return ram;}
 void setRam(int r)                                     {ram=r;}

 void eingabe();
 void ausgabe() const;

};

impl:

#include &quot;computer.h&quot;

Computer::Computer(long nr)
{
nummer=nr;
}

Computer::~Computer(){}

void Computer::eingabe()
{
cout&lt;&lt;&quot;Nummer: &quot;;
cin&gt;&gt;nummer;
}

void Computer::ausgabe() const
{
cout&lt;&lt;&quot;Nummer: &quot;&lt;&lt;nummer&lt;&lt;endl;
}

//////////////////////////////Intel/////////////////////////////////////////////

Intel::Intel(long nr, int m):
 Computer(nr),mhz(m)
{}

Intel::~Intel(){}

void Intel::eingabe()
{
cout&lt;&lt;&quot;Nummer: &quot;;
cin&gt;&gt;nummer;
cout&lt;&lt;&quot;Mhz: &quot;;
cin&gt;&gt;mhz;
}

void Intel::ausgabe()const
{
cout&lt;&lt;&quot;Nummer: &quot;&lt;&lt;nummer&lt;&lt;endl;
cout&lt;&lt;&quot;Mhz: &quot;&lt;&lt;mhz&lt;&lt;endl;
}

//////////////////////////////Amd///////////////////////////////////////////////

Amd::Amd(long nr, int r):
 Computer(nr),ram(r)
{}

Amd::~Amd(){}

void Amd::eingabe()
{
cout&lt;&lt;&quot;Nummer: &quot;;
cin&gt;&gt;nummer;
cout&lt;&lt;&quot;Ram: &quot;;
cin&gt;&gt;ram;
}

void Amd::ausgabe()const
{
cout&lt;&lt;&quot;Nummer: &quot;&lt;&lt;nummer&lt;&lt;endl;
cout&lt;&lt;&quot;Ram: &quot;&lt;&lt;ram&lt;&lt;endl;
}

main:

#include &quot;computer.h&quot;
#pragma hdrstop
#pragma argsused

int main(int argc, char* argv[])
{

Computer* pCom[20];
int auswahl, anzahl, i;

for(int i=0;i&lt;20;i++)
{

cout&lt;&lt;&quot;Bitte Wahl treffen&quot;&lt;&lt;endl;
cout&lt;&lt;&quot;1 = Intel    2 = AMD&quot;&lt;&lt;endl;

cin
&gt;&gt;auswahl;

if(auswahl&lt;1||auswahl&gt;2)
break;

switch(auswahl)
{
 case 1:
 pCom[i] = new Intel(123456, 2000);
 pCom[i]-&gt;eingabe();
 break;

 case 2:
 pCom[i] = new Amd(1234, 512);
 break;
}
}

anzahl=i;

for(i=0;i&lt;anzahl;i++)
{
 pCom[i]-&gt;ausgabe();
}
 delete pCom;

getch();
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/989624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989624</guid><dc:creator><![CDATA[Mr. Blonde]]></dc:creator><pubDate>Wed, 08 Feb 2006 19:05:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Polymorphie on Wed, 08 Feb 2006 19:12:56 GMT]]></title><description><![CDATA[<p>Du deletest pCom, aber pCom ist ein Array auf dem Stack. Das führt zum Absturz. Du musst schon die Einträge in pCom einzeln deleten und das Aufräumen des Stacks dem normalen Gang der Dinge überlassen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989628</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 08 Feb 2006 19:12:56 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Polymorphie on Wed, 08 Feb 2006 19:15:57 GMT]]></title><description><![CDATA[<p>Danke für die Antwort - aber wie mache ich das genau?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989632</guid><dc:creator><![CDATA[Mr. Blonde]]></dc:creator><pubDate>Wed, 08 Feb 2006 19:15:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Polymorphie on Wed, 08 Feb 2006 19:25:55 GMT]]></title><description><![CDATA[<p>Hallo</p>
<pre><code class="language-cpp">for(i=0;i&lt;anzahl;i++)
{
 delete pCom[i];
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989650</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 08 Feb 2006 19:25:55 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Polymorphie on Wed, 08 Feb 2006 19:29:56 GMT]]></title><description><![CDATA[<p>thx <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>
<p>aber der Fehler tritt immernoch auf ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989654</guid><dc:creator><![CDATA[Mr. Blonde]]></dc:creator><pubDate>Wed, 08 Feb 2006 19:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Polymorphie on Wed, 08 Feb 2006 21:03:32 GMT]]></title><description><![CDATA[<p>Mr. Blonde schrieb:</p>
<blockquote>
<p>aber der Fehler tritt immernoch auf ...</p>
</blockquote>
<p>Im main gibt es zweimal die Variable 'i'.<br />
Einmal hier</p>
<pre><code class="language-cpp">int main(int argc, char* argv[])
{

    Computer* pCom[20];
    int auswahl, anzahl, i; // 'i' ist hier nicht initialisiert
</code></pre>
<p>und hier</p>
<pre><code class="language-cpp">for(int i=0;i&lt;20;i++)
{
</code></pre>
<p>nachdem die for-Schleife zu Ende ist, benutzt Du i wieder; diesmal die unitialisierte .. und da kann sonstwas drin stehen, aber wahrscheinlich nicht 20.</p>
<p>Dass Du das</p>
<pre><code class="language-cpp">delete pCom;
</code></pre>
<p>ganz weglassen musst, hast Du schon richtig verstanden - oder?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989729</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 08 Feb 2006 21:03:32 GMT</pubDate></item></channel></rss>