<?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[statische Member vererben?]]></title><description><![CDATA[<p>Werden statische Member automatisch &quot;mit&quot; vererbt=</p>
<p>Bsp:</p>
<pre><code class="language-cpp">class Base{
  ...
  protected:
    static string x;
};

class Sub : public Base{
  ...
};

string Sub::x = &quot;Text...&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/146788/statische-member-vererben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 00:34:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146788.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 May 2006 20:05:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:05:32 GMT]]></title><description><![CDATA[<p>Werden statische Member automatisch &quot;mit&quot; vererbt=</p>
<p>Bsp:</p>
<pre><code class="language-cpp">class Base{
  ...
  protected:
    static string x;
};

class Sub : public Base{
  ...
};

string Sub::x = &quot;Text...&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1055173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055173</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Wed, 10 May 2006 20:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:17:06 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ja, aber warum versuchst du's nich einfach??? <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="🙄"
    /><br />
Nur wenn du den Zugriff mit protected oder private spezifizierst hast du halt ein Problem...</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055182</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 10 May 2006 20:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:20:22 GMT]]></title><description><![CDATA[<p>Ich habe es natürlich schon probiert, aber es funktioniert nicht.<br />
1:1 wie oben, nur natürlich ohne &quot;...&quot;!</p>
<p>Was sollten sich für Probleme mit <strong>protected</strong> ergeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055186</guid><dc:creator><![CDATA[statiX]]></dc:creator><pubDate>Wed, 10 May 2006 20:20:22 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:25:23 GMT]]></title><description><![CDATA[<p>statiX schrieb:</p>
<blockquote>
<p>Was sollten sich für Probleme mit <strong>protected</strong> ergeben?</p>
</blockquote>
<p>Wie gut sind denn deine Englischkenntnise? <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="😃"
    /> Ich mein das Wort protected heißt doch schon &quot;geschützt&quot;... <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="😉"
    /> Also ist der Member vom Zugriff von außen geschützt. Nur abgelittene Klassen können auf diesen Member zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055190</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Wed, 10 May 2006 20:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:26:40 GMT]]></title><description><![CDATA[<p>Na und? Will ich von außen zugreifen? - Nein!<br />
Und ja, es macht in meinem fall Sinn. Aber leider funktioniert es ja nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055193</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Wed, 10 May 2006 20:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:37:46 GMT]]></title><description><![CDATA[<p>staticX schrieb:</p>
<blockquote>
<p>Na und? Will ich von außen zugreifen? - Nein!</p>
</blockquote>
<p>Sorry, aber <strong>das</strong> hab ich in meiner Kristallkugel heute anders gesehen. <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="😉"
    /> [ROFL, wobei ich zugeben muss, dass ich teilweise daran Schuld bin... so spät ist meine Kristallkugel halt ein wenig eingestaubt, da kann man schonmal unscharf sehen]</p>
<p>Mal abgesehen davon, was bringt den das, wenn du den statischen Member über die abgelittene Klasse definierst? Is doch sowieso statisch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055196</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Wed, 10 May 2006 20:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:36:06 GMT]]></title><description><![CDATA[<p>Du musst natürlich</p>
<pre><code class="language-cpp">string Base::x = &quot;text...&quot;;
</code></pre>
<p>schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055198</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 10 May 2006 20:36:06 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:40:55 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Du musst natürlich</p>
<pre><code class="language-cpp">string Base::x = &quot;text...&quot;;
</code></pre>
<p>schreiben.</p>
</blockquote>
<p>Dann habe ich die Basisklasse initialisiert. Will ich aber nicht. Ich möchte von Base mehrere Klassen ableiten. Alle sollen ihren eigenen String bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055202</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Wed, 10 May 2006 20:40:55 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:46:35 GMT]]></title><description><![CDATA[<p>Dann solltest du evtl. keinen statischen Member nehmen <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="😉"
    /> Denn gibts nämhlich nur einmal und nicht pro abgelittener Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055204</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Wed, 10 May 2006 20:46:35 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:47:29 GMT]]></title><description><![CDATA[<p>Dann mußt Du die auch der jeweiligen Klasse hinzufügen.<br />
Was allen Base-Objekten zusammen gehört kommt in Base. Was unterschiedliche Unterklassen von Base nicht gemeinsam haben sollen kommt auch nicht nach Base.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055206</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 10 May 2006 20:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:49:36 GMT]]></title><description><![CDATA[<p>Also ist die Antwort auf meine Frage nein.<br />
Unterklassen bekommen nicht eine &quot;eigene&quot; statische Variable. Ok...<br />
Dann muss eben doch was rein virtuelles a la</p>
<pre><code class="language-cpp">//Base:
virtual string getX(void) = 0;
...
//Sub:
string getX(void) { return &quot;Text...&quot;; }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1055208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055208</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Wed, 10 May 2006 20:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Wed, 10 May 2006 20:50:57 GMT]]></title><description><![CDATA[<p>und <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/324">@Jester</a>:</p>
<p>Den String &quot;x&quot; <em>haben</em> alle Unterklassen gemeinsam! Deswegen sollte es ja in Base!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055209</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Wed, 10 May 2006 20:50:57 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Thu, 11 May 2006 04:50:37 GMT]]></title><description><![CDATA[<p>staticX schrieb:</p>
<blockquote>
<p>und <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/324">@Jester</a>:</p>
<p>Den String &quot;x&quot; <em>haben</em> alle Unterklassen gemeinsam! Deswegen sollte es ja in Base!</p>
</blockquote>
<p>x vielleicht, aber nicht den text der dahinter steht <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/1055253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055253</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 11 May 2006 04:50:37 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Thu, 11 May 2006 15:58:22 GMT]]></title><description><![CDATA[<p>Was für Möglichkeiten gäbe es denn, so einen String zu implementieren?</p>
<p><strong>1.</strong></p>
<pre><code class="language-cpp">class Base{
  static string x; 
}
string Base::x = &quot;Base...&quot;; 

class Sub1 : public Base{
  static string x; 
}
string Sub1::x = &quot;Sub1...&quot;; 

class Sub2 : public Base{
  static string x; 
}
string Sub2::x = &quot;Sub2...&quot;;
</code></pre>
<p><strong>2.</strong></p>
<pre><code class="language-cpp">class Base{
  virtual static string getX(void) = 0; 
}

class Sub1 : public Base{
  virtual static string getX(void) {return &quot;Sub1...&quot;;} 
}

class Sub2 : public Base{
  virtual static string getX(void) {return &quot;Sub2...&quot;;} 
}
</code></pre>
<p>Was für andere gibt es noch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055779</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Thu, 11 May 2006 15:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Fri, 12 May 2006 08:17:32 GMT]]></title><description><![CDATA[<p>Ne static abstrakte methode ? ^^</p>
<p>Ohje, glaub klein wenig Nachhilfe in Polymorphie waere ned so schlecht !</p>
<p>Glaub von der Logic verhaust Du Dich grad maechtig.</p>
<p>Polymorphie:<br />
- Der typ einer Instanz wird bei der Erzeugung festgelegt.<br />
- Alle polymorphen Instanzen erhalten eine VTable (Table der Adressen fuer die virtuellen funktionen)<br />
- bei der erzeugung (new oder stack oder ...) wird die Vtable mit den adressen der Funktionen der klasse gefuellt, mit der erzeugt wird ....<br />
- wird eine virtuelle funktion nicht implementiert, wird der der unmittelbaren Basisklasse genommen, wenn der auch nicht, dann wird weiter in der hirachie nach unten gesucht.<br />
- gibt es gar keine Implementation, kann die vtable nicht erstellt werden, und damit keine Instanz -&gt; abstrakte klasse</p>
<p>Statische Funktionen:<br />
- sind globale funktionen die im namensraum der Klasse &quot;versteckt&quot; werden<br />
- zusaetztlich bekommen sie nur noch die Zugriffsprivilegien der Klassen ab (public,private,protected)<br />
- funktionieren damit total unabhaengig irgendwelcher Instanzen.<br />
- abgeleiteten klassen koennen statische funktionen ueberdecken, es funktioniert wie die normale Namensaufloesung bei member funktionen.<br />
- In der Regel qualifiziert man den Aufruf voll (um konflikte zu vermeiden) mit der Klasse dessen methode man aufrufen will ... also B::x() zum beispiel ...<br />
- wird der name ned voll qualifiziert, wird der name durch den statischen Typ der variable wo man dran aufruft ergaenzt ...., also B * p1; p1-&gt;x(); // es wird B::x() aufgerufen, reinterpret_cast&lt;C*&gt;(p1)-&gt;x(); // statische typ des Zeigers nach dem Cast ist C* also wird C::x() aufgerufen.</p>
<p>also polymorphie und static beissen sich gewaltig ....<br />
Man kann schon intressante effekte mit erzielen, aber die sind meist nicht wirklich gewollt, oder lassen sich durch andere sachen saueber loesen. und man macht einfach die zuordnung, wann welche funktion aufgerufen wird, verworrener -&gt; schlecht wartbarer Code.</p>
<p>Also schreib lieber verbal was genau du erreichen willst (da bin ich noch ned so hinterkommen) und vielleicht koennen wir dir dabei helfen es umzusetzen ...</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056176</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Fri, 12 May 2006 08:17:32 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Fri, 12 May 2006 14:36:55 GMT]]></title><description><![CDATA[<p>Ich habe eine ähnliche Frage hier schon einmal gestellt und verstehe ehrlich einfach nicht was die Leute daran nicht raffen. Ich werde mal noch etwas konkreter mein Problem beschreiben:</p>
<p>Klar ist <strong>static</strong>(nur über &quot;die Klasse&quot; ansprechbar) und <strong>virtual</strong>(tut abhängig vom Typ, der &quot;verlohren&quot; gegangen sein kann(z.B. Basisklassen Pointer auf Objekte von erbenden Klassen), &quot;genau das richtige&quot;) ein Widerspruch.<br />
Die Basis Klasse ist aber aus verschiedenen Gründen bereits pure virtual - Und das ist auch gut so.<br />
Bei dem String handelt es sich um einen String, der quasi eine kleine Grammatik enthält. Jede Klasse, die sich von Base ableitet implementiert <em>auf andere Weise</em> eine <em>andere</em> Grammatik.<br />
Ist es nicht verständlich, dass jede Klasse deswegen genau einen String braucht?</p>
<p>Ich würde hier bei <strong>static virtual</strong> auch den Vorteil sehen, dass jede Klasse, die sich ableitet - und damit eine Grammatik implementiert - auch wirklich eine Grammatik hat.</p>
<p>Echt, ich meine das nicht unhöflich, nur frage ich mich wirklich warum alle Leute sofort anfangen &quot;Nachhilfe&quot; zu geben.(Was ja eigentlich sehr nett ist. Ist ja immerhin ein zentrales Thema der Sprache und auch nicht einfach und kurz zu erklären)</p>
<p>Würdet ihr sagen &quot;...implementiert <em>auf andere Weise</em> eine <em>andere</em> Grammatik...&quot; sagt bereits, dass hier falsch modelliert wurde?</p>
<p>Also, schreibt einfach was dazu. Mich interessiert die Sache <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>
<p>gruß an mein lieblings forum <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/1056530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056530</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Fri, 12 May 2006 14:36:55 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Fri, 12 May 2006 14:54:53 GMT]]></title><description><![CDATA[<p>Da sowohl Code einer jeden Klasse wie auch statische Felder innerhalb ihrer Methodenrümpfe nur einmal im Speicher vorkommen, wäre eine denkbare Lösung:</p>
<pre><code class="language-cpp">class Basis {
  virtual const string&amp; getX() = 0;
};

class Sub1 {
  virtual const string&amp; getX();
};

const string&amp; Sub1::getX() {
  static string grammar( &quot;eine sub1 grammatik&quot; );
  return grammar;
}

class Sub2 {
  virtual const string&amp; getX();
};

const string&amp; Sub2::getX() { 
  static string grammar( &quot;eine sub2 grammatik&quot; );
  return grammar;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1056553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056553</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 12 May 2006 14:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Fri, 12 May 2006 14:58:52 GMT]]></title><description><![CDATA[<p>Ok, das ist gut. Ist aber ja ähnlich wie ich oben unter <strong>2.</strong> geschrieben habe.<br />
Hätte halt noch den Vorteil, dass der String nur einmal initialisiert wird und dann immer nur zurückgegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056556</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Fri, 12 May 2006 14:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Sun, 14 May 2006 09:04:01 GMT]]></title><description><![CDATA[<p>Ok, keine weiteren Vorschläge?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1057415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1057415</guid><dc:creator><![CDATA[staticX]]></dc:creator><pubDate>Sun, 14 May 2006 09:04:01 GMT</pubDate></item><item><title><![CDATA[Reply to statische Member vererben? on Sun, 14 May 2006 09:42:52 GMT]]></title><description><![CDATA[<p>staticX schrieb:</p>
<blockquote>
<p>Ok, keine weiteren Vorschläge?</p>
</blockquote>
<p>Welche Vorschläge willst du denn noch.<br />
Im Beispiel von LordJaxom hast du für jede Klasse genau einen statischen String der obendrein nur dann initialisiert wird wenn er auch gebraucht wird.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1057436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1057436</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sun, 14 May 2006 09:42:52 GMT</pubDate></item></channel></rss>