<?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[frage zu extern mit Klasse (C++ Buch verlegt) [gelöst]]]></title><description><![CDATA[<p>ich würde für mein Projekt gerne eine Globale Variable anlegen, auf die ich von allen meinen quelltexten zugreifen kann. Dazu habe ich mir eine main.h angelegt, und dort die Variable mit extern erstellt, allerdings ist sie ja noch nicht existent, ich muss ja noch den Konstruktor in der main.cpp aufrufen, aber wie mache ich das, wenn die variable schon da ist? Leider halten sich die Informationen über &quot;extern&quot; im Internet sehr versteckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189886/frage-zu-extern-mit-klasse-c-buch-verlegt-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 12:43:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189886.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Aug 2007 23:49:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to frage zu extern mit Klasse (C++ Buch verlegt) [gelöst] on Sat, 18 Aug 2007 11:02:58 GMT]]></title><description><![CDATA[<p>ich würde für mein Projekt gerne eine Globale Variable anlegen, auf die ich von allen meinen quelltexten zugreifen kann. Dazu habe ich mir eine main.h angelegt, und dort die Variable mit extern erstellt, allerdings ist sie ja noch nicht existent, ich muss ja noch den Konstruktor in der main.cpp aufrufen, aber wie mache ich das, wenn die variable schon da ist? Leider halten sich die Informationen über &quot;extern&quot; im Internet sehr versteckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346722</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sat, 18 Aug 2007 11:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu extern mit Klasse (C++ Buch verlegt) [gelöst] on Sat, 18 Aug 2007 07:27:37 GMT]]></title><description><![CDATA[<p>in main.h</p>
<pre><code class="language-cpp">extern variablen_typ globalesVariable;
</code></pre>
<p>extern erzeugt keine variablen, daher muss sie irgendwo noch erzeugt werden, bspw in main.cpp</p>
<pre><code class="language-cpp">variablen_typ globalesVariable(irgendwas); //hier wird die variable erzeugt
//gleiche deklaration verwenden, aber ohne extern und dafür mit dem konstruktorparameter, so du einen brauchst
</code></pre>
<p>wobei du den header besser nicht main.h sondern global.h nennen solltest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346751</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Sat, 18 Aug 2007 07:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu extern mit Klasse (C++ Buch verlegt) [gelöst] on Sat, 18 Aug 2007 09:43:36 GMT]]></title><description><![CDATA[<p>Krux meint wahrscheinlich, dass er in main.cpp auch noch global/main.hpp einbindet!</p>
<p>Stimmts? <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/1346788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346788</guid><dc:creator><![CDATA[Thomy]]></dc:creator><pubDate>Sat, 18 Aug 2007 09:43:36 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu extern mit Klasse (C++ Buch verlegt) [gelöst] on Sat, 18 Aug 2007 11:02:38 GMT]]></title><description><![CDATA[<p>ne ghorst hat schon recht, danke. Bei mir heißt keine Datei *.hpp, noch habe ich Ordner, in denen ich meine Quelltexte verwalte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346808</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sat, 18 Aug 2007 11:02:38 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu extern mit Klasse (C++ Buch verlegt) [gelöst] on Sat, 18 Aug 2007 11:25:51 GMT]]></title><description><![CDATA[<p>Thomy schrieb:</p>
<blockquote>
<p>Krux meint wahrscheinlich, dass er in main.cpp auch noch global/main.hpp einbindet!</p>
</blockquote>
<p>und wo wäre das problem?<br />
die &quot;extern&quot;-deklaration und die normale können problemlos sogar in einer datei stehen.<br />
aber hier das vollständige bsp für dich:<br />
main.h:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
extern std::string test;
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;main.h&quot;	
std::string test(&quot;test&quot;);

int main()
{
	std::cout &lt;&lt; test &lt;&lt; std::endl;
	return 0;
}
</code></pre>
<p>nach dem präprozessor durchlauf, steht die beiden deklarationen in der selben datei. ist aber alles kein problem, da extern nur die existenz des symbols und den datentyp definiert, allerdings es nicht weiß, wo es liegt. die &quot;normale&quot; deklaration definiert wieder die existenz des gleichen symbol und erzeugt die daten. die eigentliche verbindunge zwischen symbol und speicherstelle erfolgt formal erst beim linken. (real werden lokale symbole und ähnliches schon weit früher aufgelöst.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346817</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Sat, 18 Aug 2007 11:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu extern mit Klasse (C++ Buch verlegt) [gelöst] on Sun, 19 Aug 2007 07:56:24 GMT]]></title><description><![CDATA[<p>ja ich hab es schon verstanden, ist ja auch nicht das erste mal gewesen, dass ich extern verwendet habe, allerdings hatte ich wieder vergessen, wie ich es benutze. Aber trotz dem nochmal danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347187</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 19 Aug 2007 07:56:24 GMT</pubDate></item></channel></rss>