<?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[Wie greift man auf statische Klassenmember zu?]]></title><description><![CDATA[<pre><code class="language-cpp">int globalFunction();

// usw. usf.

class Blatt{
protected:
 static unsigned blattCount;
 static Blatt* blaetter;

 friend int globalFunction();

// usw. usf.
};

/* So und wie schreibt man jetzt richtig die globalFunction ? */

// So (Variante 1)
int globalFunction(){
 for(int i; i &lt; Blatt::blattCount; i++){
   // usw. usf.
 }

}

// Oder So (Variante 2)
int globalFunction(){
 for(int i; i &lt; Blatt.blattCount; i++){
   // usw. usf.
 }

}
</code></pre>
<p>Also entweder :: oder . ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185097/wie-greift-man-auf-statische-klassenmember-zu</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 01:45:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185097.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Jun 2007 18:33:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 18:33:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int globalFunction();

// usw. usf.

class Blatt{
protected:
 static unsigned blattCount;
 static Blatt* blaetter;

 friend int globalFunction();

// usw. usf.
};

/* So und wie schreibt man jetzt richtig die globalFunction ? */

// So (Variante 1)
int globalFunction(){
 for(int i; i &lt; Blatt::blattCount; i++){
   // usw. usf.
 }

}

// Oder So (Variante 2)
int globalFunction(){
 for(int i; i &lt; Blatt.blattCount; i++){
   // usw. usf.
 }

}
</code></pre>
<p>Also entweder :: oder . ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310969</guid><dc:creator><![CDATA[Statisch]]></dc:creator><pubDate>Thu, 21 Jun 2007 18:33:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 18:41:14 GMT]]></title><description><![CDATA[<p>. kannst du nur verwenden, wenn du ein Objekt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310972</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Thu, 21 Jun 2007 18:41:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 18:56:38 GMT]]></title><description><![CDATA[<p>wobei es eine ganzeMenge leute schöner finden wenn man generell über :: zugreift.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310981</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Thu, 21 Jun 2007 18:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 19:00:46 GMT]]></title><description><![CDATA[<p>darthdespotism schrieb:</p>
<blockquote>
<p>wobei es eine ganzeMenge leute schöner finden wenn man generell über :: zugreift.</p>
</blockquote>
<p>Oh, du und wer noch? <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/1310982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310982</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 21 Jun 2007 19:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 19:03:35 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>darthdespotism schrieb:</p>
<blockquote>
<p>wobei es eine ganzeMenge leute schöner finden wenn man generell über :: zugreift.</p>
</blockquote>
<p>Oh, du und wer noch? <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>
</blockquote>
<p>War ne Zeit mal eine Diskusion in de.comp.lang.iso-c++ vll find ich noch den followup</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310985</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Thu, 21 Jun 2007 19:03:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 19:11:16 GMT]]></title><description><![CDATA[<p>danke fuer die Tipps.<br />
Mit den statischen Klassenelementen ist das immer so eine Sache, die Grenzen zwischen einer statischen Klassenvariablen<em>deklaration</em> und einer statischen Klassenvariablen<em>definition</em> verlaufen scheinbar fließend.</p>
<p>Einerseits besteht ein Definitionszwang. Wenn ich die Definition in der gleichen Datei notiere, in der der Rest der Klassenfunktionalitaet implementiert ist, also auch ausserhalb der Header-Datei, in der die Klasse <em>deklariert</em> ist, treten folgende Probleme auf:</p>
<p>Wenn ich den Header zu meiner main() mit #include dazunehme, und bei den 'zusätzlichen Abhängigkeiten/Bibliotheken' die Datei mit der Implementierung zur main-Datei dazulinken lassen möchte, meint der Compiler (Linker?) entweder, dass die statischen Klassenelemente überhaupt nicht definiert wurden, oder auch manchmal, dass die statischen Klassenelemente mehrfach definiert wurden. Kommt darauf an, ob Compiler/Linker einen guten Tag erwischt haben oder nicht. So scheint es.</p>
<p>Auch bei den friend-Deklarationen gibt's ähnliche Probleme, wenn die friend-Funktion in einer externen Datei definiert ist.</p>
<p>Irgendwann komme ich schon noch hinter die Geheimnisse der statischen Klassenmember.</p>
<p>Erstmal danke für den Tipp mit der richtigen Schreibweise.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310992</guid><dc:creator><![CDATA[Statisch]]></dc:creator><pubDate>Thu, 21 Jun 2007 19:11:16 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Thu, 21 Jun 2007 20:54:48 GMT]]></title><description><![CDATA[<p>ich versteh den Sinn deiner Klasse nicht ^^</p>
<pre><code class="language-cpp">class book
{
    class page
    {
        std::string m_content;
        std::size_t m_num;
    };
    std::vector &lt;page&gt; m_pages;

public:
    std::size_t get_page_count() const { return m_pages.size(); }
};
</code></pre>
<p>wäre sinniger ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1311054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311054</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 21 Jun 2007 20:54:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Fri, 22 Jun 2007 07:00:06 GMT]]></title><description><![CDATA[<p>Die statischen Elemente Blatt* und Count sollen Buch darüber führen, wieviele Objekte der Klasse gerade existieren und ausnahmsweise einer einzigen globalen Funktion soll es erlaubt sein, über static Blatt* und static Count indirekt auf die Objekte zugreifen zu dürfen. Deshalb sind Blatt* und Count auch protected.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1311169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311169</guid><dc:creator><![CDATA[Statisch]]></dc:creator><pubDate>Fri, 22 Jun 2007 07:00:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie greift man auf statische Klassenmember zu? on Fri, 22 Jun 2007 07:14:20 GMT]]></title><description><![CDATA[<p>Konkrete Skizze:</p>
<pre><code class="language-cpp">class Zeichenblatt{
protected:
static Zeichenblatt* drawPaper;
static unsigned drawPaperCount;

friend LRESULT CALLBACK defaultPainter(HWND hwnd, MSG msg, WPARAM wParam,
 LPARAM lParam);

// nicht-statische Elemente
COLORREF graphColor;
HWND childHwnd;
RECT childArea;

// ...
};
</code></pre>
<p>Der Konstruktor gibt legt bei einer erfolgreichen Zeichenblatt-Konstruktion den this Zeiger in drawPaper ab, der defaultPaper kann dann sinngemäß zeichnen.</p>
<p>Vielleicht auch ein übles Fehl-Design, aber was soll's, was anderes ist mir nicht eingefallen.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1311184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1311184</guid><dc:creator><![CDATA[Statisch]]></dc:creator><pubDate>Fri, 22 Jun 2007 07:14:20 GMT</pubDate></item></channel></rss>