<?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[Zugriff auf Klassen Variable]]></title><description><![CDATA[<p>Hallo</p>
<p>habe folgendes Problem.</p>
<pre><code class="language-cpp">#ifndef Unit2H
#define Unit2H
class Test
{
	public:
	static unsigned int A;
	static void Temp();

};
#endif
</code></pre>
<pre><code class="language-cpp">#pragma hdrstop
#include &quot;Unit2.h&quot;
#include &quot;Unit1.h&quot;
#pragma package(smart_init)

void Test::Temp(void)
{
	A = 10;
	Form1-&gt;Edit1-&gt;Text = A;

}
</code></pre>
<p>Hier Rufe ich nun die Funktion Temp auf.</p>
<pre><code class="language-cpp">void __fastcall TForm1::FormPaint(TObject *Sender)
{
	Test::Temp();
}
</code></pre>
<p>Es kommt dann die Fehlermeldung Unresolved external Test::A vom Linker.</p>
<p>Ist die Variable nicht static kann ich sie nur in einem Objekt benutzen,<br />
welches ich aber nicht instanzieren möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194074/zugriff-auf-klassen-variable</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 03:52:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194074.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Oct 2007 13:53:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriff auf Klassen Variable on Wed, 03 Oct 2007 13:53:42 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>habe folgendes Problem.</p>
<pre><code class="language-cpp">#ifndef Unit2H
#define Unit2H
class Test
{
	public:
	static unsigned int A;
	static void Temp();

};
#endif
</code></pre>
<pre><code class="language-cpp">#pragma hdrstop
#include &quot;Unit2.h&quot;
#include &quot;Unit1.h&quot;
#pragma package(smart_init)

void Test::Temp(void)
{
	A = 10;
	Form1-&gt;Edit1-&gt;Text = A;

}
</code></pre>
<p>Hier Rufe ich nun die Funktion Temp auf.</p>
<pre><code class="language-cpp">void __fastcall TForm1::FormPaint(TObject *Sender)
{
	Test::Temp();
}
</code></pre>
<p>Es kommt dann die Fehlermeldung Unresolved external Test::A vom Linker.</p>
<p>Ist die Variable nicht static kann ich sie nur in einem Objekt benutzen,<br />
welches ich aber nicht instanzieren möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377134</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 03 Oct 2007 13:53:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Klassen Variable on Wed, 03 Oct 2007 15:21:14 GMT]]></title><description><![CDATA[<p>Hallo hermes,</p>
<p>eine statische Klassenvariable musst Du noch ausserhalb der Klasse definieren:</p>
<pre><code class="language-cpp">#ifndef Unit2H
#define Unit2H
class Test
{
    public:
    static unsigned int A;
    static void Temp();

};

unsigned int Test::A; //&lt;&lt;-- Hier
#endif
</code></pre>
<pre><code class="language-cpp">#pragma hdrstop
#include &quot;Unit2.h&quot;
#include &quot;Unit1.h&quot;
#pragma package(smart_init)

void Test::Temp(void)
{
    A = 10;
    Form1-&gt;Edit1-&gt;Text = A;

}
</code></pre>
<pre><code class="language-cpp">void __fastcall TForm1::FormPaint(TObject *Sender)
{
    Test::Temp();
}
</code></pre>
<p>Gruß Peter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377171</guid><dc:creator><![CDATA[Peter24]]></dc:creator><pubDate>Wed, 03 Oct 2007 15:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Klassen Variable on Wed, 03 Oct 2007 18:26:15 GMT]]></title><description><![CDATA[<p>Hallo Peter24,</p>
<p>vorweg es funktioniert.</p>
<p>Da ich hautsächlich in C Programmiere finde ich<br />
das ein wening ungewöhnlich.</p>
<p>Unter C setz man mit dem Schlüsselwort &quot;extern&quot; einen Platzhalter für den Linker der dann beim linken die Addresse der Variable einsetzt.</p>
<p>Hier sieht es aber so aus als ob ich eine weitere Instanz<br />
ausserhalb der Klasse instanziere.</p>
<p>Zumal man sich da ja auch einen Ast abschreibt (alles doppelt)</p>
<p>Warum kennt der Linker nicht die Adresse der static instanzierten Variable A?</p>
<p>Das sagt doch die Fehlermeldung &quot;unresolved external&quot; aus. oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377405</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 03 Oct 2007 18:26:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf Klassen Variable on Thu, 04 Oct 2007 07:43:14 GMT]]></title><description><![CDATA[<p>Bei statischen Klassenmembervariablen ist es ähnlich wie mit extern. Das in der Klasse ist nur eine Deklaration. Damit weiß der Compiler nur, dass es diese Variable gibt. Die Definition fehlt noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377589</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 04 Oct 2007 07:43:14 GMT</pubDate></item></channel></rss>