<?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[simple frage - statische felder]]></title><description><![CDATA[<p>hallo zusammen,</p>
<p>ich habe eine basisklasse Reference&lt;A&gt;. davon soll eine klasse Schluessel erben: class Schluessel: public Reference&lt;unsigned int&gt;{}. Nun die Frage:</p>
<p>wie kann ich in der klasse Schluessel zwei felder anlegen, welche statisch intialisiert sind:</p>
<p>Schluessel::UNDEFINED = 0</p>
<p>Schluessel::INITIAL = 1</p>
<p>egal wie ich es probiere drehe ich mich im kreis. hat jemand ne seite für mich, wo ich dies nachlesen kann???</p>
<p>danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323458/simple-frage-statische-felder</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 22:29:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323458.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Jan 2014 09:34:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:34:39 GMT]]></title><description><![CDATA[<p>hallo zusammen,</p>
<p>ich habe eine basisklasse Reference&lt;A&gt;. davon soll eine klasse Schluessel erben: class Schluessel: public Reference&lt;unsigned int&gt;{}. Nun die Frage:</p>
<p>wie kann ich in der klasse Schluessel zwei felder anlegen, welche statisch intialisiert sind:</p>
<p>Schluessel::UNDEFINED = 0</p>
<p>Schluessel::INITIAL = 1</p>
<p>egal wie ich es probiere drehe ich mich im kreis. hat jemand ne seite für mich, wo ich dies nachlesen kann???</p>
<p>danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380735</guid><dc:creator><![CDATA[uwerothfeld]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:34:39 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:43:20 GMT]]></title><description><![CDATA[<p>verstehe nicht ganz was du meinst, vll. das?</p>
<pre><code>template&lt;typename A&gt;
class Reference
{
};

class Schluessel : public Reference&lt;unsigned int&gt;
{
	static int UNDEFINED = 0;
	static int INITIAL = 1;
};
</code></pre>
<p>was das mit der basisklasse zu tun hat und was es mit feldern zu tun hat ist mir nicht ganz klar. kannst du es bitte neu formulieren?</p>
<p>edit: deusche sprache, schwierige sprache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380736</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:43:20 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:40:33 GMT]]></title><description><![CDATA[<p>Weder die Vererbung noch das Template sollten hier eine Rolle spielen. Die statischen Member werden genau so erzeugt, wie sonst auch. Die Methode ist dir bekannt? Zeig mal, was du versuchst und erklär, was da dran nicht funktioniert.</p>
<pre><code>class foo
{
  static int bar;
};

// In einer Übersetzungseinheit:
int foo::bar = 1234;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2380739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380739</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:40:33 GMT]]></title><description><![CDATA[<p>hallo asdiol,</p>
<p>nun, bei deiner lösung sieht man, dass UNDEFINED und INITIAL uint's sind. ich will dies nach verbergen, oder irre ich???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380738</guid><dc:creator><![CDATA[uwerothfeld]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:42:33 GMT]]></title><description><![CDATA[<p>uwerothfeld schrieb:</p>
<blockquote>
<p>nun, bei deiner lösung sieht man, dass UNDEFINED und INITIAL uint's sind. ich will dies nach verbergen, oder irre ich???</p>
</blockquote>
<p>eigentlich sind es in meine listing <code>int</code> s. den typen verbergen? wie soll der compiler dann wissen welchen typen du möchtest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380741</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:42:33 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:46:43 GMT]]></title><description><![CDATA[<p>ich habs so probiert:</p>
<pre><code>class PeerID : public Reference&lt;unsigned int&gt; {

        public:
            static const PeerID UNDEFINED_PEER_ID;
            static const PeerID INITIAL_PEER_ID;

        };

        static const PeerID::INITIAL_PEER_ID = 1;
</code></pre>
<p>bzw so:</p>
<pre><code>class PeerID : public Reference&lt;unsigned int&gt; {};

   static const PeerID UNDEFINED_PEER_ID = 0;
   static const PeerID INITIAL_PEER_ID = 1;
</code></pre>
<p>mit typen verbergen meine ich, dass man wirklich nur PeerID sieht und halt für setter und getter die funktionen der klasse nehmen muß, statt sagen zu können:</p>
<pre><code>PeerID a=3;
</code></pre>
<p>ich weiß, genau das probiere ich mit den statischen feldern. ich dreh mich im kreis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380742</guid><dc:creator><![CDATA[uwerothfeld]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:46:43 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:46:49 GMT]]></title><description><![CDATA[<p>uwerothfeld schrieb:</p>
<blockquote>
<pre><code>class PeerID : public Reference&lt;unsigned int&gt; {

        public:
            static const PeerID UNDEFINED_PEER_ID;
            static const PeerID INITIAL_PEER_ID;

        };

        static const PeerID::INITIAL_PEER_ID = 1;
</code></pre>
</blockquote>
<p>bei der definition von statischen membern ausserhalb der klassendefinition brauchst du den specifier <code>static</code> nicht hinschreiben (bzw. darfst du gar nicht). ausserdem hast du vergessen den typen von <code>PeerID::INITIAL_PEER_ID</code> hinzuschreiben.</p>
<p>uwerothfeld schrieb:</p>
<blockquote>
<pre><code>class PeerID : public Reference&lt;unsigned int&gt; {};

   static const PeerID UNDEFINED_PEER_ID = 0;
   static const PeerID INITIAL_PEER_ID = 1;
</code></pre>
</blockquote>
<p>hier definierst du einfach zwei globale variablen mit dem typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380743</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:48:34 GMT]]></title><description><![CDATA[<p>uwerothfeld schrieb:</p>
<blockquote>
<p>mit typen verbergen meine ich, dass man wirklich nur PeerID sieht und halt für setter und getter die funktionen der klasse nehmen muß, statt sagen zu können:</p>
<pre><code>PeerID a=3;
</code></pre>
<p>ich weiß, genau das probiere ich mit den statischen feldern. ich dreh mich im kreis.</p>
</blockquote>
<p>das dürfte gar nicht gehen ausser du hast für die klasse <code>PeerID</code> händisch einen impliziten konstruktor definiert, der einen in <code>int</code> konvertierbaren typen annimmt. lösung -&gt; diesen ctor entfernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380745</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:50:48 GMT]]></title><description><![CDATA[<p>hallo zusammen,</p>
<p>erst mal dank für die hilfe <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>wenn ich es so definiere:</p>
<pre><code>class PeerID : public Reference&lt;unsigned int&gt; {

        public:
            const PeerID UNDEFINED_PEER_ID = 0;

            const PeerID INITIAL_PEER_ID = 1;

        };
</code></pre>
<p>Bekomme ich:</p>
<pre><code>In file included from common/Defines.h:13,
                 from BaseMoversight.h:6,
                 from BaseMoversight.cc:1:
PeerID.h:26: error: field ‘UNDEFINED_PEER_ID’ has incomplete type
PeerID.h:28: error: field ‘INITIAL_PEER_ID’ has incomplete type
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2380747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380747</guid><dc:creator><![CDATA[uwerothfeld]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:50:48 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:51:15 GMT]]></title><description><![CDATA[<p>uwerothfeld schrieb:</p>
<blockquote>
<p>mit typen verbergen meine ich, dass man wirklich nur PeerID sieht und halt für setter und getter die funktionen der klasse nehmen muß, statt sagen zu können:</p>
<pre><code>PeerID a=3;
</code></pre>
<p>ich weiß, genau das probiere ich mit den statischen feldern.</p>
</blockquote>
<p><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="😕"
    /></p>
<p>Es ist ja sehr lobenswert, dass du dein eigentliches Problem beschreibst (ich denke nicht, dass statische Member hier irgendetwas als Lösung des Problems taugen), aber deine Problembeschreibung ist absolut unverständlich. Schreib nicht so, wie du denkst! Stream of consciousness mag gut sein, um Literaturkritiker zu beeindrucken, aber es taugt nicht für verständliche Fachgespräche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380748</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 09:54:11 GMT]]></title><description><![CDATA[<p>c++ ist kein ratespiel. bitte überleg dir mal was passiert, wenn ein typ sich selbst als nicht-statischen member hat. also: <code>PeerID</code> enthält 2 <code>PeerID</code> s, die enthalten je 2 <code>PeerID</code> s, die enthalten je... und immer so weiter. merkst du was?</p>
<p>edit: ja ich kann seppj nur zustimmen. es ist mir äusserst schleierhaft was du tun möchtest. bitte beschreibe WAS du tun willst, nicht WIE.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380749</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 31 Jan 2014 09:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 10:35:37 GMT]]></title><description><![CDATA[<p>hallo zusammen. <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>ja, ich bin heut ein wenig verwirrt. geb es zu. <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>also folgendes. ich hatte bisher:</p>
<pre><code>typedef unsinged int PeerID;

static const PeerID UNDEFINED_PEER_ID = 0;
...
</code></pre>
<p>von solchen Definitionen hab ich ein paar bisher. Nun will ich diese alle in eine gemeinsame Klasse vereinigen: Reference&lt;A&gt;. A ist dann immer der entsprechende Urtyp des typedefs und kann auch ne Zeit oder ähnliches sein.</p>
<p>Nun halt die Frage: wie bilde ich die oberen Definitionen auf meine neue Klassen ab. class PeerID: public Reference&lt;unsigned int&gt; geht prima. Bloß wo ich meine UNDEFINED_PEER_ID und INITIAL_PEER_ID hinpacke checke ich nicht.</p>
<p>Verständlicher???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380752</guid><dc:creator><![CDATA[uwerothfeld]]></dc:creator><pubDate>Fri, 31 Jan 2014 10:35:37 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 10:47:46 GMT]]></title><description><![CDATA[<p>Ok, das ist verständlich gewesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> .</p>
<p>Du bist hier anscheinend der Mehrfachbedeutung von static zum Opfer gefallen. static als Prädikat für eine globale Variable bedeutet ganz was anderes als static als Prädikat für ein Klassenmember.</p>
<p>Wenn ich das nun richtig verstanden habe, dann suchst du etwas in dieser Art:</p>
<pre><code>template &lt;typename T&gt; class Reference
{
protected:
  T data;
public:
  Reference(const T&amp; data): data(data) { }
};

class PeerID : public Reference&lt;unsigned&gt;
{
public:
  PeerID(unsigned data): Reference&lt;unsigned&gt;(data) { }
};

static const PeerID UNDEFINED_PEER_ID = 0;
static const PeerID INITIAL_PEER_ID = 1;
</code></pre>
<p>Ich bin mir nicht sicher, ob dies schon alle deine Anforderungen erfüllt, aber in diese Richtung sollte es gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380755</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 31 Jan 2014 10:47:46 GMT</pubDate></item><item><title><![CDATA[Reply to simple frage - statische felder on Fri, 31 Jan 2014 18:08:14 GMT]]></title><description><![CDATA[<p>hallo zusammen,</p>
<p>so bin ich erst mal weiter gekommen. einige probleme bezüglich operatoren habe ich noch, aber das machen wir nach meinen urlaub. <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="😃"
    /> vielen dank für eure hilfe. seid super!</p>
<p>der uwe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2380870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2380870</guid><dc:creator><![CDATA[uwerothfeld_]]></dc:creator><pubDate>Fri, 31 Jan 2014 18:08:14 GMT</pubDate></item></channel></rss>