<?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[Wiedermal problem mit oberklasse + Abgeleitete]]></title><description><![CDATA[<p>Heute is irgendwie nicht mein Tag, ich erkenn die einfachsten fehler nicht(wobei mir das bei eigenem Code ohnehin schwerfällt).<br />
Diesmal hab ich eine DLL Oberklasse + DLL Unterklasse, Die unterklasse hat diverse private Mebervariablen. Für jede dieser Variablen hab ich in der Unterklasse ne get, bzw. set Funktion. Wenn ich jetzt von einer anderen Klasse drauf zugreifen will um über set div. Werte zu ändern meckert der Compiler, dass die get-, set-Funktion nicht in der Oberklasse definiert ist. Stimmt, aber was interessiert mich die Oberklasse?</p>
<p>Kann mir da einer helfen?</p>
<p>mfg<br />
Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/54902/wiedermal-problem-mit-oberklasse-abgeleitete</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 07:04:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/54902.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Nov 2003 20:01:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Tue, 11 Nov 2003 20:01:34 GMT]]></title><description><![CDATA[<p>Heute is irgendwie nicht mein Tag, ich erkenn die einfachsten fehler nicht(wobei mir das bei eigenem Code ohnehin schwerfällt).<br />
Diesmal hab ich eine DLL Oberklasse + DLL Unterklasse, Die unterklasse hat diverse private Mebervariablen. Für jede dieser Variablen hab ich in der Unterklasse ne get, bzw. set Funktion. Wenn ich jetzt von einer anderen Klasse drauf zugreifen will um über set div. Werte zu ändern meckert der Compiler, dass die get-, set-Funktion nicht in der Oberklasse definiert ist. Stimmt, aber was interessiert mich die Oberklasse?</p>
<p>Kann mir da einer helfen?</p>
<p>mfg<br />
Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392081</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Tue, 11 Nov 2003 20:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Tue, 11 Nov 2003 20:42:46 GMT]]></title><description><![CDATA[<p>Ich poste hier mal ungfähr meinen Code:</p>
<pre><code class="language-cpp">namespace all
{
class DLL Player : public Object
	{
	protected:
		int anz_buildings, used_support, max_now_support;
	public:
		std::list&lt;smart_ptr&lt;Warrior&gt; &gt; units;
		std::list&lt;smart_ptr&lt;building&gt; &gt; buildings;
	public:
		inline int get_anz_buildings(){return(anz_buildings);} 
		inline int get_used_support(){return(used_support);}
		inline int get_max_now_support(){return(max_now_support);}
		inline void set_anz_buildings(int n){anz_buildings = n;}
		inline void set_used_support(int n){used_support = n;}
		inline void set_max_now_support(int n){max_now_support = n;}
		friend class Warrior;
		virtual ~Player() = 0;
	};}
namespace humans
{
namespace humans
{
	DLL enum Partr{Perser, Wikinger, Hunnen};

	class DLL human_Player : public all::Player
	{
	protected:
		Partr Stamm;
		int wood, food, metal, mana;
	public:
		int get_wood(){return(wood);}
		int get_metal(){return(metal);}
		int get_food(){return(food);}
		int get_mana(){return(mana);}
		void set_wood(int nwood){wood = nwood;}
		void set_metal(int nmetal){metal = nmetal;}
		void set_food(int nfood){food = nfood;}
		void set_mana(int nmana){mana = nmana;}
		human_Player(Partr nStamm);
		~human_Player();
	};
    class Arbeiter
    {
    //normale Klasse
    };
}
humans::Schwertkmpfer::Schwertkmpfer(humans::human_Player* nowner) 
{
	owner = nowner;
	if(owner-&gt;get_food() &gt;= 50 &amp;&amp; owner-&gt;get_metal() &gt;= 10 &amp;&amp; (owner-&gt;get_used_support() + 1) &lt;= owner-&gt;get_max_now_support())
	{
		owner-&gt;set_food(owner-&gt;get_food() - 50);
		owner-&gt;set_metal(owner-&gt;get_metal() - 10);
		owner-&gt;set_used_support(owner-&gt;get_used_support()+1);

		dmga = Schwertkmpfers::dmga;
		dmgg = Schwertkmpfers::dmgg;
		dmg = Schwertkmpfers::dmg;
		HP = Schwertkmpfers::HP;
		armor = Schwertkmpfers::armor;
		see = Schwertkmpfers::see;
		radius = Schwertkmpfers::radius;
		fast = Schwertkmpfers::fast;
		flying = Schwertkmpfers::flying;
		freq = Schwertkmpfers::freq;
		mana = Schwertkmpfers::mana;
		mut = Schwertkmpfers::mut;
		now_exp = Schwertkmpfers::now_exp;
		give_exp = Schwertkmpfers::give_exp;
		needed_exp = Schwertkmpfers::needed_exp;
		level = Schwertkmpfers::level;

		setbeing(special::humans, special::Schwertkmpfer);
	}
	else
	{
		owner-&gt;units.pop_back();
	}
}
</code></pre>
<p>Der Compiler bringt folgende Meldungen:<br />
Error C2039: 'get_food' : Ist kein Element von 'Player' .....</p>
<p>thx<br />
Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392114</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Tue, 11 Nov 2003 20:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Tue, 11 Nov 2003 20:49:35 GMT]]></title><description><![CDATA[<p>owner ist vom Typ Player*, du rufst aber Funktionen auf, die Player nicht hat (get_food zum Beispiel).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392119</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 11 Nov 2003 20:49:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Tue, 11 Nov 2003 20:53:44 GMT]]></title><description><![CDATA[<p>Glamdrink schrieb:</p>
<blockquote>
<p>Heute is irgendwie nicht mein Tag</p>
</blockquote>
<p>zumindest bei einer Sache hatte ich Recht!</p>
<p>thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392122</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Tue, 11 Nov 2003 20:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Wed, 12 Nov 2003 06:27:01 GMT]]></title><description><![CDATA[<p>Ich fürchte, dass ich noch so eine Noob-Frage stellen muss:</p>
<p>folgender Code:</p>
<pre><code class="language-cpp">namespace humans
{
	class Warriors
	{
	public:
		static int dmga, dmgg, dmg, HP,mana, armor, fast, see, freq, radius, mut;
		static bool flying;
		static int give_exp, now_exp, needed_exp, level;
	public:
		Warriors(){}
		virtual ~Warriors() = 0;
	};

	class Arbeiters : public Warriors 
	{
	public:
		static int holz, nahrung, metal;
	};

	class Schwertkmpfers : public Warriors {};
}
</code></pre>
<p>Soweit müsste das richtig sein, aber hier meine .cpp Datei:</p>
<pre><code class="language-cpp">bool humans::Arbeiters::flying = false;
int humans::Arbeiters::holz = 5;
int humans::Arbeiters::nahrung = 5;
int humans::Arbeiters::metal = 5;
int humans::Arbeiters::dmgg = 3;
int humans::Arbeiters::dmga = 0;
int humans::Arbeiters::dmg = 3;
int humans::Arbeiters::freq = 50;
int humans::Arbeiters::HP = 30;
int humans::Arbeiters::armor = 1;
int humans::Arbeiters::fast = 5;
int humans::Arbeiters::see = 5;
int humans::Arbeiters::mut = 10;
int humans::Arbeiters::radius = 1;
int humans::Arbeiters::mana = 0;
int humans::Arbeiters::now_exp = 0;
int humans::Arbeiters::give_exp = 10;
int humans::Arbeiters::needed_exp = 20;
int humans::Arbeiters::level = 0;

bool humans::Schwertkmpfers::flying = false;
int humans::Schwertkmpfers::dmgg = 5;
int humans::Schwertkmpfers::dmga = 0;
int humans::Schwertkmpfers::dmg = 8;
int humans::Schwertkmpfers::freq = 60;
int humans::Schwertkmpfers::HP = 40;
int humans::Schwertkmpfers::armor = 2;
int humans::Schwertkmpfers::fast = 5;
int humans::Schwertkmpfers::see = 5;
int humans::Schwertkmpfers::mut = 10;
int humans::Schwertkmpfers::radius = 1;
int humans::Schwertkmpfers::mana = 0;
int humans::Schwertkmpfers::now_exp = 0;
int humans::Schwertkmpfers::give_exp = 20;
int humans::Schwertkmpfers::needed_exp = 50;
int humans::Schwertkmpfers::level = 0;
</code></pre>
<p>Der Compiler meckert:<br />
'public: static bool humans::Warriors::flying' : Neudefinition; Mehrfachinitialisierung</p>
<p>Und das bei jeder Static-Definition</p>
<p>ich hab vorher noch nie mit staticmembers gearbeitet, aber laut meinem nachschlagwerk müsste das so richtig sein.</p>
<p>Was mach ich diesmal falsch ?</p>
<p>thx<br />
Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392203</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Wed, 12 Nov 2003 06:27:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Wed, 12 Nov 2003 08:16:08 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Arbeiters und Schwertkämpfers, das nenn ich mal ne geile Pluralbildung...</p>
<p>Die Frage ist es, ob es hier denn sinnvoll ist zu erben. Generell wäre es wohl sinnvoller eine Mensch(Human)-Klasse zu haben und die anderen davon zu erben(Ist ein Arbeiter ein Krieger?).</p>
<p>Das nächste Problem: static-&gt;Variablen gehören zur Klasse, nicht zum Objekt. Das heißt, alle Warriors teilen sich ein und die selbe Variable, sicher daß Du das willst?<br />
Und bloß weil Du jetzt erbst gehören die Variablen aus Warrior immer noch zu Warrior, und sind somit auch in allen Unterklassen enthalten, das heißt alle Klassen zusammen teilen sich diesen einen Satz von Variablen. Was wohl auch erklären dürfte, warum Du sie nicht mehrfach anlegen darfst.</p>
<p>MfG Jester</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392248</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 12 Nov 2003 08:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Wed, 12 Nov 2003 12:05:52 GMT]]></title><description><![CDATA[<p>Das s am Ende stand für Struktur, weils hat früher Strukturen zu den richtigen Klassen (ohne s) sind. Sie sollten die Standardwerte für die jeweiligen Klassen beinhalten, so dass man bei upgrades nur die Struktur ändern müsste, um die jeweiligen Krieger zu verändern, für die bereits gebauten hab ich ein anderes System.</p>
<p>Danke</p>
<p>Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392422</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Wed, 12 Nov 2003 12:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Wed, 12 Nov 2003 12:22:58 GMT]]></title><description><![CDATA[<p>Ich hoffe das ist endlich die letzte Frage:</p>
<p>Ich habe von 3 basisklassen jeweils einen pure virtual dtor. Der Compiler meckert:<br />
rror LNK2001: Nichtaufgeloestes externes Symbol &quot;public: virtual __thiscall all::Warrior::~Warrior(void)&quot; (??1Warrior@all@@UAE@XZ)</p>
<p>Was soll ich jetzt machen? Das mit Pragma ausschlaten, wenns die DLL nicht beinflusst, den dtor nur virtual machen, der dann nichts tut <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="😕"
    /></p>
<p>thx<br />
Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392442</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Wed, 12 Nov 2003 12:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Wed, 12 Nov 2003 12:31:01 GMT]]></title><description><![CDATA[<p>auch pure virtual destruktoren müssen implementiert werden</p>
<pre><code class="language-cpp">class x {
  ~x () = 0;
};

x::~x () {}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/392449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392449</guid><dc:creator><![CDATA[davie]]></dc:creator><pubDate>Wed, 12 Nov 2003 12:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal problem mit oberklasse + Abgeleitete on Wed, 12 Nov 2003 12:54:18 GMT]]></title><description><![CDATA[<p>Achso, das wusste ich nicht, danke</p>
<p>mfg<br />
Glamdring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/392470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/392470</guid><dc:creator><![CDATA[Glamdrink]]></dc:creator><pubDate>Wed, 12 Nov 2003 12:54:18 GMT</pubDate></item></channel></rss>