<?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[Viruelle Funktionen Speicherzuweisung]]></title><description><![CDATA[<p>HIho!</p>
<p>Also ich versuch mir ein paa Fähigkeiten in C++ anzueignen!<br />
Ich bin jetzt zu den virtuellen Funktionen vorgedrungen, doch da stoß ich auf ein Problem!<br />
Mein code:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdio.h&gt;

class Haus
{
protected:
	int Flaeche;
	char Adresse[100];
public:
	Haus (void);
	void Initialisiere (int Fl, char *Adr);
	virtual void Zeige (void);
};

class Wohnstube : public Haus
{
	char Gegenstand[20];
public:
	void Initialisiere (int Fl, char *Geg);
	void Zeige (void);
};

class Kueche : public Haus
{ 
	char Gegenstand[20];
public:
	void Initialisiere (int Fl, char *Geg);
	void Zeige (void);
};

Haus::Haus(void)
{
	Flaeche = 300;
	strcpy(Adresse,&quot;Kirchstrasse 50&quot;);
};
void Haus::Initialisiere (int Fl, char *Adr)
{
	Flaeche = Fl;
	strcpy(Adresse,Adr);
}
void Haus::Zeige (void)
{
	cout &lt;&lt; &quot;Die Wohnung ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quadratmeter gross und steht in der &quot; &lt;&lt; Adresse &lt;&lt; &quot;.&quot; &lt;&lt; endl;
};
//-------------------------------------
void Wohnstube::Initialisiere (int Fl, char *Geg)
{
	Flaeche = Fl;
	strcpy(Gegenstand,Geg);
};
void Wohnstube::Zeige (void)
{ 
	cout &lt;&lt; &quot;Im Wohnzimmer steht ein: &quot;&lt;&lt; Gegenstand &lt;&lt; &quot; und es ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quardratmeter gross.&quot; &lt;&lt; endl;
};
//-------------------------------------
void Kueche::Initialisiere (int Fl, char *Geg)
{
	Flaeche = Fl;
	strcpy(Gegenstand,Geg);
};
void Kueche::Zeige (void)
{ 
	cout &lt;&lt; &quot;In der Kueche steht ein: &quot;&lt;&lt; Gegenstand &lt;&lt; &quot; und sie ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quardratmeter gross.&quot; &lt;&lt; endl;
};

Haus *Zimmer[5];

int main ()
{

	Wohnstube *WohnstubeZeiger;
	WohnstubeZeiger = new Wohnstube;
	WohnstubeZeiger-&gt;Initialisiere(200,&quot;Fernseher&quot;);
	Zimmer[1] = WohnstubeZeiger;

	Kueche *KuecheZeiger;
	KuecheZeiger = new Kueche;
	KuecheZeiger-&gt;Initialisiere(100,&quot;Backofen&quot;);
	Zimmer[2] = KuecheZeiger;

	for (int i = 0; i &lt; 5; i++)
	{
		Zimmer[i]-&gt;Zeige();
	};
	return 0;
};
</code></pre>
<p>^^ warscheinl. schrecklicher Programmierstil, aber das soll euch erstmal ncith stören <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
DAs Problem ist, dass für die Zimmerzeiger kein Speicherplatz mit &quot;new&quot; bereitgestellt wird und mein programm deshalb abstürzt</p>
<p>wenn ich aber so Speicherplatz bereitstellen würde:</p>
<pre><code class="language-cpp">//...
for (int i = 0; i &lt; 5; i++)
	{
            Zimmer[i] = new Haus;
		Zimmer[i]-&gt;Zeige();
	};
//...
</code></pre>
<p>oder so:</p>
<pre><code class="language-cpp">//...
for (int i = 0; i &lt; 5; i++)
	{
            Zimmer[i] = new Wohnstube;
		Zimmer[i]-&gt;Zeige();
	};
//...
</code></pre>
<p>dann hab ich den Effekt der virtuellen Funktionen ncihtmehr!</p>
<p>Also irgendwo hab ich einen Fehler gemacht, denn hier:<br />
file://localhost/C:/Dokumente%20und%20Einstellungen/Udo/Eigene%20Dateien/Programmieren/C++/cpp_dodrill_einfuehrung/cpphtml/kapitel11.html (die ersten 5 Beispielcodes)<br />
funktioniert es aber ...</p>
<p>DANKESCHÖN!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128492/viruelle-funktionen-speicherzuweisung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 16:21:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128492.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Dec 2005 09:36:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:36:20 GMT]]></title><description><![CDATA[<p>HIho!</p>
<p>Also ich versuch mir ein paa Fähigkeiten in C++ anzueignen!<br />
Ich bin jetzt zu den virtuellen Funktionen vorgedrungen, doch da stoß ich auf ein Problem!<br />
Mein code:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdio.h&gt;

class Haus
{
protected:
	int Flaeche;
	char Adresse[100];
public:
	Haus (void);
	void Initialisiere (int Fl, char *Adr);
	virtual void Zeige (void);
};

class Wohnstube : public Haus
{
	char Gegenstand[20];
public:
	void Initialisiere (int Fl, char *Geg);
	void Zeige (void);
};

class Kueche : public Haus
{ 
	char Gegenstand[20];
public:
	void Initialisiere (int Fl, char *Geg);
	void Zeige (void);
};

Haus::Haus(void)
{
	Flaeche = 300;
	strcpy(Adresse,&quot;Kirchstrasse 50&quot;);
};
void Haus::Initialisiere (int Fl, char *Adr)
{
	Flaeche = Fl;
	strcpy(Adresse,Adr);
}
void Haus::Zeige (void)
{
	cout &lt;&lt; &quot;Die Wohnung ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quadratmeter gross und steht in der &quot; &lt;&lt; Adresse &lt;&lt; &quot;.&quot; &lt;&lt; endl;
};
//-------------------------------------
void Wohnstube::Initialisiere (int Fl, char *Geg)
{
	Flaeche = Fl;
	strcpy(Gegenstand,Geg);
};
void Wohnstube::Zeige (void)
{ 
	cout &lt;&lt; &quot;Im Wohnzimmer steht ein: &quot;&lt;&lt; Gegenstand &lt;&lt; &quot; und es ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quardratmeter gross.&quot; &lt;&lt; endl;
};
//-------------------------------------
void Kueche::Initialisiere (int Fl, char *Geg)
{
	Flaeche = Fl;
	strcpy(Gegenstand,Geg);
};
void Kueche::Zeige (void)
{ 
	cout &lt;&lt; &quot;In der Kueche steht ein: &quot;&lt;&lt; Gegenstand &lt;&lt; &quot; und sie ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quardratmeter gross.&quot; &lt;&lt; endl;
};

Haus *Zimmer[5];

int main ()
{

	Wohnstube *WohnstubeZeiger;
	WohnstubeZeiger = new Wohnstube;
	WohnstubeZeiger-&gt;Initialisiere(200,&quot;Fernseher&quot;);
	Zimmer[1] = WohnstubeZeiger;

	Kueche *KuecheZeiger;
	KuecheZeiger = new Kueche;
	KuecheZeiger-&gt;Initialisiere(100,&quot;Backofen&quot;);
	Zimmer[2] = KuecheZeiger;

	for (int i = 0; i &lt; 5; i++)
	{
		Zimmer[i]-&gt;Zeige();
	};
	return 0;
};
</code></pre>
<p>^^ warscheinl. schrecklicher Programmierstil, aber das soll euch erstmal ncith stören <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
DAs Problem ist, dass für die Zimmerzeiger kein Speicherplatz mit &quot;new&quot; bereitgestellt wird und mein programm deshalb abstürzt</p>
<p>wenn ich aber so Speicherplatz bereitstellen würde:</p>
<pre><code class="language-cpp">//...
for (int i = 0; i &lt; 5; i++)
	{
            Zimmer[i] = new Haus;
		Zimmer[i]-&gt;Zeige();
	};
//...
</code></pre>
<p>oder so:</p>
<pre><code class="language-cpp">//...
for (int i = 0; i &lt; 5; i++)
	{
            Zimmer[i] = new Wohnstube;
		Zimmer[i]-&gt;Zeige();
	};
//...
</code></pre>
<p>dann hab ich den Effekt der virtuellen Funktionen ncihtmehr!</p>
<p>Also irgendwo hab ich einen Fehler gemacht, denn hier:<br />
file://localhost/C:/Dokumente%20und%20Einstellungen/Udo/Eigene%20Dateien/Programmieren/C++/cpp_dodrill_einfuehrung/cpphtml/kapitel11.html (die ersten 5 Beispielcodes)<br />
funktioniert es aber ...</p>
<p>DANKESCHÖN!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933671</guid><dc:creator><![CDATA[Top-se]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:36:20 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:39:07 GMT]]></title><description><![CDATA[<p>Der Link funktioniert nicht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/933672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933672</guid><dc:creator><![CDATA[Udo--]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:47:11 GMT]]></title><description><![CDATA[<p>ubs, lol, sorry, ich bin beklopt, kann garnicht funzen *sich die Hand vor den Kopf schlag*</p>
<p>Könnt ihr denn das Problem auch so finden, ansonsten würde ich halt den anderen Code, der aber nciths mit meinem zutun hat hier rein stellen, aber eigentl. müsste es auch ohne gehen!</p>
<p>SORRY</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933676</guid><dc:creator><![CDATA[Top-se]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:48:24 GMT]]></title><description><![CDATA[<p>Du belegst von den 5 nur zwei Zeiger und wunderst dich dann, warum du sie nicht ausgeben kannst? Gib halt nur die zwei aus, die auch belegt sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933677</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:48:24 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:51:14 GMT]]></title><description><![CDATA[<p>Top-se schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Haus *Zimmer[5];

int main ()
{
	
	Wohnstube *WohnstubeZeiger;
	WohnstubeZeiger = new Wohnstube;
	WohnstubeZeiger-&gt;Initialisiere(200,&quot;Fernseher&quot;);
	Zimmer[1] = WohnstubeZeiger;
	
	Kueche *KuecheZeiger;
	KuecheZeiger = new Kueche;
	KuecheZeiger-&gt;Initialisiere(100,&quot;Backofen&quot;);
	Zimmer[2] = KuecheZeiger;
	
	for (int i = 0; i &lt; 5; i++)
	{
		Zimmer[i]-&gt;Zeige();
	};
	return 0;
};
</code></pre>
</blockquote>
<p>Ohne jetzt weiter auf andere Themen einzugehen: Du weist die zwei Zimmer in Deinem Zeiger-Array Platz 1 und 2 zu, aber es beginnt bei 0. Du gibst auch ab 0 aus, weswegen schon der erste Zeige-Zugriff auf die Nase fällt.</p>
<p>(Ob es schlau ist, Zimmer von Haus abzuleiten, oder anderes, lasse ich jetzt mal beseite)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933678</guid><dc:creator><![CDATA[ArrayAbNull]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:51:14 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:51:46 GMT]]></title><description><![CDATA[<p>naja, aber so funzt es genausowenig:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdio.h&gt;

class Haus
{
protected:
	int Flaeche;
	char Adresse[100];
public:
	Haus (void);
	void Initialisiere (int Fl, char *Adr);
	virtual void Zeige (void);
};

class Wohnstube : public Haus
{
	char Gegenstand[20];
public:
	void Initialisiere (int Fl, char *Geg);
	void Zeige (void);
};

class Kueche : public Haus
{ 
	char Gegenstand[20];
public:
	void Initialisiere (int Fl, char *Geg);
	void Zeige (void);
};

Haus::Haus(void)
{
	Flaeche = 300;
	strcpy(Adresse,&quot;Kirchstrasse 50&quot;);
};
void Haus::Initialisiere (int Fl, char *Adr)
{
	Flaeche = Fl;
	strcpy(Adresse,Adr);
}
void Haus::Zeige (void)
{
	cout &lt;&lt; &quot;Die Wohnung ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quadratmeter gross und steht in der &quot; &lt;&lt; Adresse &lt;&lt; &quot;.&quot; &lt;&lt; endl;
};
//-------------------------------------
void Wohnstube::Initialisiere (int Fl, char *Geg)
{
	Flaeche = Fl;
	strcpy(Gegenstand,Geg);
};
void Wohnstube::Zeige (void)
{ 
	cout &lt;&lt; &quot;Im Wohnzimmer steht ein: &quot;&lt;&lt; Gegenstand &lt;&lt; &quot; und es ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quardratmeter gross.&quot; &lt;&lt; endl;
};
//-------------------------------------
void Kueche::Initialisiere (int Fl, char *Geg)
{
	Flaeche = Fl;
	strcpy(Gegenstand,Geg);
};
void Kueche::Zeige (void)
{ 
	cout &lt;&lt; &quot;In der Kueche steht ein: &quot;&lt;&lt; Gegenstand &lt;&lt; &quot; und sie ist &quot; &lt;&lt; Flaeche &lt;&lt; &quot; Quardratmeter gross.&quot; &lt;&lt; endl;
};

Haus *Zimmer[2];

int main ()
{

	Wohnstube *WohnstubeZeiger;
	WohnstubeZeiger = new Wohnstube;
	WohnstubeZeiger-&gt;Initialisiere(200,&quot;Fernseher&quot;);
	Zimmer[0] = WohnstubeZeiger;

	Kueche *KuecheZeiger;
	KuecheZeiger = new Kueche;
	KuecheZeiger-&gt;Initialisiere(100,&quot;Backofen&quot;);
	Zimmer[1] = KuecheZeiger;

	for (int i = 0; i &lt; 2; i++)
	{
		Zimmer[i]-&gt;Zeige();
	};
	return 0;
};
</code></pre>
<p>oder hab ich jetzt irgendwo nen Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933679</guid><dc:creator><![CDATA[Top-se]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:51:46 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:55:21 GMT]]></title><description><![CDATA[<p>Ich nehm alles zurück, so funzt es!</p>
<p>Dankeschön, ich muss also noch einiges lernen, sorry für die Belästigung, aber auf so nen banalen Fehler komm ich halt nciht ...</p>
<p>THX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933680</guid><dc:creator><![CDATA[Top-se]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:55:21 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 09:58:36 GMT]]></title><description><![CDATA[<p>Eine Vererbung spiegelt idealweise eine &quot;ist-ein&quot;-Bezeihiehung wieder.</p>
<p>Ist eine Küche ein Haus? - Ich denke mal nicht!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933682</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Sun, 04 Dec 2005 09:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 10:11:25 GMT]]></title><description><![CDATA[<p>hm, nö <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> , aber eine Küche ist in einem Haus *g*</p>
<p>DAs programme hab ich nur mal schnell erfunden bzw. die Begebenheiten um virtuelle Funktionene zu testen, ich werde das Progie warscheinl. nie wieder nutzen, also hab ich mir dadrüber auch keine Gedanken gemacht, aber trotzdem THX für den Hinweis!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933691</guid><dc:creator><![CDATA[Top_se]]></dc:creator><pubDate>Sun, 04 Dec 2005 10:11:25 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 13:40:10 GMT]]></title><description><![CDATA[<p>Top_se schrieb:</p>
<blockquote>
<p>hm, nö <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> , aber eine Küche ist in einem Haus *g*</p>
</blockquote>
<p>Quasi ein Haus &quot;hat eine&quot; Küche..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933765</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Sun, 04 Dec 2005 13:40:10 GMT</pubDate></item><item><title><![CDATA[Reply to Viruelle Funktionen Speicherzuweisung on Sun, 04 Dec 2005 13:43:58 GMT]]></title><description><![CDATA[<p>Ich dachte immer, ein Haus hat mehrere Zimmer (std::vector&lt;Zimmer*&gt;). Ein Zimmer kann en Küche sein oder ne Wohnstube oder was ganz anderes.<br />
geloescht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933768</guid><dc:creator><![CDATA[geloescht]]></dc:creator><pubDate>Sun, 04 Dec 2005 13:43:58 GMT</pubDate></item></channel></rss>