<?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[static attribute einer Klasse]]></title><description><![CDATA[<p>Ich hab eine Klasse, und möchte, dass bestimme werte nur einmal für die Gesamte Klasse vorkommen, allerdings kommt es bei mir da zu compilerfehlern.</p>
<p>hier ist mein header, in dem der Fehler ist</p>
<pre><code class="language-cpp">#ifndef _KLASSE_H
#define	_KLASSE_H

class Klasse{
    static int wert;
public:
    static int getint(){
        return wert;
    }
    static void changeint(int i){
        wert = i;
    }
};

#endif	/* _KLASSE_H */
</code></pre>
<p>die Fehlermeldungen sind folgende:</p>
<pre><code>/Klasse.h:8: undefined reference to `Klasse::wert'
/Klasse.h:11: undefined reference to `Klasse::wert'
</code></pre>
<p>ich denke ich hab hier ein sache von Java gelernt, die so ohne weiteres nicht nach c++ übertragbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185564/static-attribute-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 04:41:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185564.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Jun 2007 22:54:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static attribute einer Klasse on Tue, 26 Jun 2007 22:55:36 GMT]]></title><description><![CDATA[<p>Ich hab eine Klasse, und möchte, dass bestimme werte nur einmal für die Gesamte Klasse vorkommen, allerdings kommt es bei mir da zu compilerfehlern.</p>
<p>hier ist mein header, in dem der Fehler ist</p>
<pre><code class="language-cpp">#ifndef _KLASSE_H
#define	_KLASSE_H

class Klasse{
    static int wert;
public:
    static int getint(){
        return wert;
    }
    static void changeint(int i){
        wert = i;
    }
};

#endif	/* _KLASSE_H */
</code></pre>
<p>die Fehlermeldungen sind folgende:</p>
<pre><code>/Klasse.h:8: undefined reference to `Klasse::wert'
/Klasse.h:11: undefined reference to `Klasse::wert'
</code></pre>
<p>ich denke ich hab hier ein sache von Java gelernt, die so ohne weiteres nicht nach c++ übertragbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314415</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Tue, 26 Jun 2007 22:55:36 GMT</pubDate></item><item><title><![CDATA[Reply to static attribute einer Klasse on Tue, 26 Jun 2007 22:59:32 GMT]]></title><description><![CDATA[<p>das <code>static int wert</code> innerhalb deiner klassendefinition ist im prinzip nur eine deklaration. du musst <code>wert</code> also noch in einer übersetzungseinheit deiner wahl definieren:</p>
<pre><code class="language-cpp">//dein_file.cc
#include &quot;klasse.h&quot;

int Klasse::wert;
</code></pre>
<p>default initialisierung btw mit 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314419</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Tue, 26 Jun 2007 22:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to static attribute einer Klasse on Tue, 26 Jun 2007 23:02:18 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>ich denke ich hab hier ein sache von Java gelernt, die so ohne weiteres nicht nach c++ übertragbar ist.</p>
</blockquote>
<p>Überleg dir doch, ob du vielleicht eigentlich einen Namespace benutzen willst. Weil in Java werden Klassen mit lediglich statischen Methoden ja als Namespace missbraucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314420</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Tue, 26 Jun 2007 23:02:18 GMT</pubDate></item><item><title><![CDATA[Reply to static attribute einer Klasse on Wed, 27 Jun 2007 08:25:29 GMT]]></title><description><![CDATA[<p>Mr. N schrieb:</p>
<blockquote>
<p>Krux schrieb:</p>
<blockquote>
<p>ich denke ich hab hier ein sache von Java gelernt, die so ohne weiteres nicht nach c++ übertragbar ist.</p>
</blockquote>
<p>Überleg dir doch, ob du vielleicht eigentlich einen Namespace benutzen willst. Weil in Java werden Klassen mit lediglich statischen Methoden ja als Namespace missbraucht.</p>
</blockquote>
<p>Ne ich will nur, dass man ein Paar einstellungen global für alle Objekter der Klasse durchführen kann</p>
<p>dass das jetzt etwas anders aussieht liegt daran, dass ich möglichst mein Problem minimalisiert habe.</p>
<p>queer_boy schrieb:</p>
<blockquote>
<p>das <code>static int wert</code> innerhalb deiner klassendefinition ist im prinzip nur eine deklaration. du musst <code>wert</code> also noch in einer übersetzungseinheit deiner wahl definieren:</p>
<pre><code class="language-cpp">//dein_file.cc
#include &quot;klasse.h&quot;

int Klasse::wert;
</code></pre>
<p>default initialisierung btw mit 0.</p>
</blockquote>
<p>also muss ich jetzt da kein static mehr hinschreiben in meiner implementierung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314541</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Wed, 27 Jun 2007 08:25:29 GMT</pubDate></item><item><title><![CDATA[Reply to static attribute einer Klasse on Wed, 27 Jun 2007 08:28:34 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>...<br />
also muss ich jetzt da kein static mehr hinschreiben in meiner implementierung?</p>
</blockquote>
<p>Stimmt !<br />
Aber eher im englischen Sinn (&quot;must not&quot;): Du darfst nicht.<br />
Das sagt Dir aber auch der Compiler, wenn Du's versuchst. <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ß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314543</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 27 Jun 2007 08:28:34 GMT</pubDate></item><item><title><![CDATA[Reply to static attribute einer Klasse on Wed, 27 Jun 2007 08:28:25 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>Mr. N schrieb:</p>
<blockquote>
<p>Krux schrieb:</p>
<blockquote>
<p>ich denke ich hab hier ein sache von Java gelernt, die so ohne weiteres nicht nach c++ übertragbar ist.</p>
</blockquote>
<p>Überleg dir doch, ob du vielleicht eigentlich einen Namespace benutzen willst. Weil in Java werden Klassen mit lediglich statischen Methoden ja als Namespace missbraucht.</p>
</blockquote>
<p>Ne ich will nur, dass man ein Paar einstellungen global für alle Objekter der Klasse durchführen kann</p>
</blockquote>
<p>Wenn das so ist, schau dir mal queer_boy's Lösung an.</p>
<p>(das Problem ist, daß die Klassendefinition in mehreren Übersetzungseinheiten eingefügt werden könnte, dein statisches Element aber nur einmal im Programm definiert werden darf. Darum steht in der Klassendefinition nur eine Deklaration und du mußt die Definition später nacholen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314544</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 27 Jun 2007 08:28:25 GMT</pubDate></item></channel></rss>