<?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[Vererbung, Klassen, verkettete stl::list von zeigern?]]></title><description><![CDATA[<p>ich hab hier klassen eine Klasse Town geschrieben und eine abstracte Klasse Building die <strong>4</strong> weitere Klassen hat (die von Building erben)<br />
hier header von town und der building</p>
<pre><code class="language-cpp">#pragma once
#include &lt;string&gt;
using std::string;
using std::ostream;
using std::endl;
class Town
{
public:
	Town(const string&amp; townName);
	Town(const Town&amp; src);//copyconstructor wg kopieren in liste?!
	virtual ~Town(void);
	void setTownName();
	string getTownName()	const;
	int getTownSize()		const;
	int getTownMoney()		const;
	int getTownResearch()	const;
	int getTownLuxuryGoods()const;
	void grow();
	bool operator&lt;(const Town&amp; value) const;
	bool operator&gt;(const Town&amp; value) const
	{
		return value &lt; *this;
	}
private:
	string makeCompareable(const string&amp; str) const;
	string name;
	int size;
	int money;
	int research;
	int luxuryGoods;
};//end class Town
inline ostream&amp; operator&lt;&lt;( ostream&amp; out,  Town const &amp;t ) 
{ 
	out&lt;&lt;std::left&lt;&lt;&quot;Stadt:\t\t&quot;&lt;&lt;t.getTownName()
		&lt;&lt;&quot; \nhat groesse:\t&quot;&lt;&lt;t.getTownSize()
		&lt;&lt;&quot; \nbesitzt:\t&quot;&lt;&lt;t.getTownMoney()&lt;&lt;&quot; Euro.&quot;
		&lt;&lt;&quot; \nund hat:\t&quot;&lt;&lt;t.getTownLuxuryGoods()&lt;&lt;&quot; Luxusgueter.&quot;
		&lt;&lt;&quot; \nund Wissen:\t&quot;&lt;&lt;t.getTownResearch()&lt;&lt;&quot; IQ.&quot;
		&lt;&lt;&quot;\n******************************&quot;&lt;&lt;endl;
	return out; 
}
</code></pre>
<p>-&gt; klasse building<br />
#pragma once<br />
#include &quot;Town.h&quot;</p>
<pre><code class="language-cpp">class Building
{
public:
	Building()
            {&quot;......... &quot;   //&lt;&lt; im konstructor ..setzen s.u. Erklärung}
; 
	virtual ~Building(void);
	virtual void improveTown()=0;

private:    //hier hab ich mal vermutet...
	//Town &amp;refTown; // scheint wohl die Referenz auf town oder ? 

};
</code></pre>
<p>Jetzt muss ich ein Attribut einfügen .. eine Referenz von Town, die vom Konstruktor dann auf diejenige Stadt(Town) gesetzt wird , zu der dann das jeweilige Gebäude gehört.. <strong>nur wie mach ich das hmm?</strong><br />
(später leite ich von building die 4 Klassen ab bsp. Bank und so sachen...)<br />
so... desweiteren muss ich in der Townklasse eine verkettete Liste von Building* Zeigern als attribut einfügen ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> nunja eine std:liste wollte ich da nehmen.. aber wie sieht das codemässig aus?)<br />
ich hoff die problemdarstellung ist klar und ihr könnt mir helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184225/vererbung-klassen-verkettete-stl-list-von-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 15:21:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184225.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Jun 2007 13:20:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 13:20:29 GMT]]></title><description><![CDATA[<p>ich hab hier klassen eine Klasse Town geschrieben und eine abstracte Klasse Building die <strong>4</strong> weitere Klassen hat (die von Building erben)<br />
hier header von town und der building</p>
<pre><code class="language-cpp">#pragma once
#include &lt;string&gt;
using std::string;
using std::ostream;
using std::endl;
class Town
{
public:
	Town(const string&amp; townName);
	Town(const Town&amp; src);//copyconstructor wg kopieren in liste?!
	virtual ~Town(void);
	void setTownName();
	string getTownName()	const;
	int getTownSize()		const;
	int getTownMoney()		const;
	int getTownResearch()	const;
	int getTownLuxuryGoods()const;
	void grow();
	bool operator&lt;(const Town&amp; value) const;
	bool operator&gt;(const Town&amp; value) const
	{
		return value &lt; *this;
	}
private:
	string makeCompareable(const string&amp; str) const;
	string name;
	int size;
	int money;
	int research;
	int luxuryGoods;
};//end class Town
inline ostream&amp; operator&lt;&lt;( ostream&amp; out,  Town const &amp;t ) 
{ 
	out&lt;&lt;std::left&lt;&lt;&quot;Stadt:\t\t&quot;&lt;&lt;t.getTownName()
		&lt;&lt;&quot; \nhat groesse:\t&quot;&lt;&lt;t.getTownSize()
		&lt;&lt;&quot; \nbesitzt:\t&quot;&lt;&lt;t.getTownMoney()&lt;&lt;&quot; Euro.&quot;
		&lt;&lt;&quot; \nund hat:\t&quot;&lt;&lt;t.getTownLuxuryGoods()&lt;&lt;&quot; Luxusgueter.&quot;
		&lt;&lt;&quot; \nund Wissen:\t&quot;&lt;&lt;t.getTownResearch()&lt;&lt;&quot; IQ.&quot;
		&lt;&lt;&quot;\n******************************&quot;&lt;&lt;endl;
	return out; 
}
</code></pre>
<p>-&gt; klasse building<br />
#pragma once<br />
#include &quot;Town.h&quot;</p>
<pre><code class="language-cpp">class Building
{
public:
	Building()
            {&quot;......... &quot;   //&lt;&lt; im konstructor ..setzen s.u. Erklärung}
; 
	virtual ~Building(void);
	virtual void improveTown()=0;

private:    //hier hab ich mal vermutet...
	//Town &amp;refTown; // scheint wohl die Referenz auf town oder ? 

};
</code></pre>
<p>Jetzt muss ich ein Attribut einfügen .. eine Referenz von Town, die vom Konstruktor dann auf diejenige Stadt(Town) gesetzt wird , zu der dann das jeweilige Gebäude gehört.. <strong>nur wie mach ich das hmm?</strong><br />
(später leite ich von building die 4 Klassen ab bsp. Bank und so sachen...)<br />
so... desweiteren muss ich in der Townklasse eine verkettete Liste von Building* Zeigern als attribut einfügen ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> nunja eine std:liste wollte ich da nehmen.. aber wie sieht das codemässig aus?)<br />
ich hoff die problemdarstellung ist klar und ihr könnt mir helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304843</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Wed, 13 Jun 2007 13:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 13:45:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Warum willst du in Town eine Liste von Building-Zeigern? Eine Liste auf Objekte tut es hier auch.<br />
Wenn eine Stadt alle seine Gebäude kontrolliert, muß das einzelne Gebäude doch auch nicht mehr wissen in welcher Stadt es ist.<br />
Wenn du es unbedingt brauchst speichere in Building einen Zeiger auf das Parent-Town-Objekt.</p>
<pre><code class="language-cpp">class Building
{
public:
    Building(Town* parent) : refTown(parent) // Pointer auf die verwaltende Stadt
{};
    virtual ~Building(void);
    virtual void improveTown()=0;

private: 
    //Town* refTown;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304872</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 13 Jun 2007 13:45:06 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 13:59:01 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>Warum willst du in Town eine Liste von Building-Zeigern? Eine Liste auf Objekte tut es hier auch.<br />
Wenn eine Stadt alle seine Gebäude kontrolliert, muß das einzelne Gebäude doch auch nicht mehr wissen in welcher Stadt es ist.<br />
Wenn du es unbedingt brauchst speichere in Building einen Zeiger auf das Parent-Town-Objekt.<br />
};</p>
</blockquote>
<p>naja ganz einfach es ist nich nur eine stadt sondern es werden mehere Städte generiert und jede stadt besitzt gebäude.<br />
d.h. ich habe eine Liste von Städten in meiner main() und die Städte sollen als attribut eine Liste von Gebäuden haben .. und genau das ist mein problem.<br />
von daher brauch ich eine Liste von Building-Zeigern als attribut. damit ich ein Building Objekt dynamisch erzeugen kann und in die Building* liste der betreffenden Stadt einfügen kann. von daher nur wie sieht das aus eine verkettete liste von Building*-zeigern...<br />
also stimmte das schonmal..was ich im kommentar geschrieben hab //Town* refTown; ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304886</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Wed, 13 Jun 2007 13:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:00:59 GMT]]></title><description><![CDATA[<p>Ein Building kann doch eigentlich nur in einer Stadt sein.<br />
Du brauchst hier keine Liste von Building-Zeigern (Objekte reichen). Die Stadt muß die Liste der Gebäude verwalten (hinzufügen, löschen etc.).<br />
Was hindert dich denn daran hier</p>
<pre><code class="language-cpp">std::list&lt;Building&gt; buildings;
</code></pre>
<p>zu nehmen.<br />
Da könnte man so ein Gebäude hinzufügen</p>
<pre><code class="language-cpp">buildings.push_back(Building(this)); // Wenn im Konstruktor der zeiger auf Town mitgegeben werden soll
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304891</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:08:06 GMT]]></title><description><![CDATA[<p>sten schrieb:</p>
<blockquote>
<p>daher brauch ich eine Liste von Building-Zeigern als attribut. damit ich ein Building Objekt dynamisch erzeugen kann und in die Building* liste der betreffenden Stadt einfügen kann. von daher nur wie sieht das aus eine verkettete liste von Building*-zeigern...</p>
</blockquote>
<pre><code class="language-cpp">std::list&lt;Building*&gt; buildings;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304900</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:11:31 GMT]]></title><description><![CDATA[<p>Ja sicher. Nur warum?<br />
Bei Zeigern muß er halt immer Gültigkeit prüfen und selber für das Aufräumen sorgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304905</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:29:37 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Ja sicher. Nur warum?<br />
Bei Zeigern muß er halt immer Gültigkeit prüfen und selber für das Aufräumen sorgen.</p>
</blockquote>
<p>also bei meinem programm hab ich mehrere städte die Gebäude haben .. dabei kann das bsp. das Gebäude &quot;bank&quot; und &quot;Uni&quot; in Stadt &quot;Mannheim&quot; also auch in Stadt &quot;Frankfurt&quot; sein.. es sind die gleichen wenn auch nicht dieselben <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="😉"
    /><br />
d.h. es gibt sowohl eine Bank in Frankfurt alsauch eine &quot;Bank&quot; in Mannheim.<br />
Ich erzeuge ein Gebäudeobjekt und tu es in die Building*Liste der betreffenden Stadt. Ne stadt soll eben mehrere gebäude(Bank, Uni, Markt usw..) haben die ich in einer liste abspeichern und aufrufen muss. oh man iss sau kompliziert <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/1304917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304917</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:28:05 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Ja sicher. Nur warum?<br />
Bei Zeigern muß er halt immer Gültigkeit prüfen und selber für das Aufräumen sorgen.</p>
</blockquote>
<p>Weil Building abstrakt ist, zudem kann er ja auch smart Pointer benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304924</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:30:26 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Braunstein schrieb:</p>
<blockquote>
<p>Ja sicher. Nur warum?<br />
Bei Zeigern muß er halt immer Gültigkeit prüfen und selber für das Aufräumen sorgen.</p>
</blockquote>
<p>Weil Building abstrakt ist, zudem kann er ja auch smart Pointer benutzen.</p>
</blockquote>
<p>nee kann ich 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="😉"
    /> k.a. *g</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304929</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:30:26 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 14:32:42 GMT]]></title><description><![CDATA[<p>Stimmt, das mit dem abstrakt hatte ich irgendwie übersehen. Also Pointer. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1304934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304934</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 13 Jun 2007 14:32:42 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 15:03:26 GMT]]></title><description><![CDATA[<p>bei beiden klassen muss ich noch vorwärts deklarieren oder?<br />
also</p>
<pre><code class="language-cpp">class Building;
Class Town
{..
}
</code></pre>
<p>und umgekehrt in der anderen klasse auch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304959</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Wed, 13 Jun 2007 15:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, Klassen, verkettete stl::list von zeigern? on Wed, 13 Jun 2007 15:15:12 GMT]]></title><description><![CDATA[<p>Ja, wenn du in Building den Pointer auf Town halten willst schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304974</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 13 Jun 2007 15:15:12 GMT</pubDate></item></channel></rss>