<?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[objekt global erreichbar]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie shcaffe ich es, das ein Objekt global überall in verschiedenen .cpp files erreichbar ist.</p>
<p>Folgendes habe ich gebaut:<br />
In der main.h erstelle ich die Klasse.<br />
die main.h ist in der main.cpp und test2.cpp included.<br />
wenn ich jetzt in der main.cpp das objekt erstelle, ist es in test2.cpp nicht erreichbar.<br />
Den Wert Roboter1.Attack bräuchte ich in der test2.cpp. Wie kann ich das erreichen, dass die Roboter1 überall ansprechbar ist?</p>
<pre><code class="language-cpp">//main.cpp
int main() {
//...
RoboTron Roboter1;
Roboter1.Attack = 1;
//...
}
</code></pre>
<pre><code class="language-cpp">#ifndef MAIN_H
#define MAIN

class RoboTron {
public:
int posX;
int posY;
int posZ;
float TopSpeed;
float CurrSpeed;
float Waypoints[6];
float WaypStatus[6];
int Energy;
int Attack;
int Exist;
float Degree;
};
#endif
</code></pre>
<p>Wenn ich in der main.h</p>
<pre><code class="language-cpp">RoboTron Roboter1;
</code></pre>
<p>verwende kommt immer, dass roboter1 doppelt deklariert ist, logisch, wird ja zweimal aufgerufen einmal durch main.cpp und test2.cpp.</p>
<p>Vielen dank für Eure Hilfe<br />
Edwart</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163587/objekt-global-erreichbar</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:43:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163587.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 31 Oct 2006 09:51:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 09:51:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie shcaffe ich es, das ein Objekt global überall in verschiedenen .cpp files erreichbar ist.</p>
<p>Folgendes habe ich gebaut:<br />
In der main.h erstelle ich die Klasse.<br />
die main.h ist in der main.cpp und test2.cpp included.<br />
wenn ich jetzt in der main.cpp das objekt erstelle, ist es in test2.cpp nicht erreichbar.<br />
Den Wert Roboter1.Attack bräuchte ich in der test2.cpp. Wie kann ich das erreichen, dass die Roboter1 überall ansprechbar ist?</p>
<pre><code class="language-cpp">//main.cpp
int main() {
//...
RoboTron Roboter1;
Roboter1.Attack = 1;
//...
}
</code></pre>
<pre><code class="language-cpp">#ifndef MAIN_H
#define MAIN

class RoboTron {
public:
int posX;
int posY;
int posZ;
float TopSpeed;
float CurrSpeed;
float Waypoints[6];
float WaypStatus[6];
int Energy;
int Attack;
int Exist;
float Degree;
};
#endif
</code></pre>
<p>Wenn ich in der main.h</p>
<pre><code class="language-cpp">RoboTron Roboter1;
</code></pre>
<p>verwende kommt immer, dass roboter1 doppelt deklariert ist, logisch, wird ja zweimal aufgerufen einmal durch main.cpp und test2.cpp.</p>
<p>Vielen dank für Eure Hilfe<br />
Edwart</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165152</guid><dc:creator><![CDATA[Edwart]]></dc:creator><pubDate>Tue, 31 Oct 2006 09:51:30 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 09:59:37 GMT]]></title><description><![CDATA[<p>im header:<br />
extern Roboter RobObj;</p>
<p>in main.cpp<br />
Roboter RobObj;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165162</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Tue, 31 Oct 2006 09:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 13:42:34 GMT]]></title><description><![CDATA[<p>und nu bitte 50 mal an die tafel schreiben:</p>
<p>&quot;globale variablen sind poese !&quot; ^^</p>
<p>- Schau ob du die zwingende Globale Variable wegbekommst .... zu 60% braucht man die meist ned wirklich global.<br />
- wenn du es nicht schaffst, gibt es meist noch andere anforderungen an die variable (lifecycle beachten !!!), dann schlagen andere techniken zu (singleton)<br />
- wenn dir das alles zu kompliziert ist, versteck die variable wenigstens hinter ner klasse (static member) und oder namespace.</p>
<p>(jeder faengt mal an, aber man soll sich sowas gar ned erst angewoehnen !!! )</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165345</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Tue, 31 Oct 2006 13:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 14:23:33 GMT]]></title><description><![CDATA[<p>naja, ich finde zB sinnvoll, in einem Programm einen globalen zeiger auf die Anwendungsklasse zu haben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165385</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Tue, 31 Oct 2006 14:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 14:38:50 GMT]]></title><description><![CDATA[<p>Für was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165396</guid><dc:creator><![CDATA[Held der Nacht]]></dc:creator><pubDate>Tue, 31 Oct 2006 14:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 15:15:31 GMT]]></title><description><![CDATA[<blockquote>
<p>Für was?</p>
</blockquote>
<p>Bei komplizierteren frameworks erspart man sich schon einiges dadurch ^^</p>
<p>z.b.<br />
wenn jede fensterklasse nen handle auf die App braucht ... kann man nicht so ohne weiteres die fensterhirarchie auf die objecthirarhie abbilden.<br />
gibt ja fenster die kein parent fester haben, aber trotzdem teil der application sind.</p>
<p>die Alternative waere, jedem konstruktor das app object mitgeben ....<br />
und so &quot;schoene&quot; statische MessageBox methoden gaengen ned mehr.</p>
<p>ich persoenlich waere ja auch fuer die alternative, aber viele andere programmierer halt nich ^^</p>
<blockquote>
<p>ich finde zB sinnvoll</p>
</blockquote>
<p>Es gibt durchaus dinge wo es sinnvoll ist ... z.b. nn globaler Logger, timer ... etc. wo das durchschleifen durch die aufrufhirarchien nur im chaos enden wuerd.</p>
<p>Aber wie gesagt solche dinge haben meist auch noch andere anforderungen, z.b Ihre einzigartigkeit (Singleton) und an die laufzeit (wenn mehrere globale objekte, in welcher reihenfolge werden die erzeugt und zerstoert ??? )<br />
Die technik dazu basiert meist auch auf ner globalen variable ... aber keine die leuchtet wie ne 1000 watt halogenbirne im Quellcode ^^<br />
&quot;versteckte&quot; globale veriablen sind z.b. statische member in klassen ... und da motzt keiner. Das problem an ner globalen variable iss ja auch nicht so das global oder namenskonflikte, sondern der ungescheutzte zugriff von ueberall her ...</p>
<p>und nur weil die mfc und die Qt daran festhalten (die moegen ja noch nich mal namespaces !!! ) muss mir das ja nicht gefallen ^^</p>
<p>ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165416</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Tue, 31 Oct 2006 15:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Tue, 31 Oct 2006 16:37:38 GMT]]></title><description><![CDATA[<p>Globale Logger, Timer etc. lassen sich alle wesentlich eleganter über einen Singleton implementieren, wobei man dann auch je nach Design das Problem mit dem Releasen der Objekte gestaffelt nach Deps. kapseln kann. Allein deswegen schon: globale Objekte == BÖSES ZEUG!!!</p>
<p>MfG Kimmi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165513</guid><dc:creator><![CDATA[kimmi]]></dc:creator><pubDate>Tue, 31 Oct 2006 16:37:38 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Thu, 02 Nov 2006 11:49:47 GMT]]></title><description><![CDATA[<p>Das könnte Dir mal zum Stolperstein werden :</p>
<pre><code class="language-cpp">#ifndef MAIN_H
#define MAIN
</code></pre>
<p>besser wäre :</p>
<pre><code class="language-cpp">#ifndef MAIN_H
#define MAIN_H
</code></pre>
<p>Sehen die anderen Include-Guards ähnlich aus ?</p>
<p>Zumal sehe ich bei Deiner Klasse keinen Konstruktor, welcher Deinen Variablen anfangswerte zuweist.</p>
<p>Ich persönlich mache meine Variablen immer private und arbeite mit Zugriffsfunktionen. Das ist aber Geschmackssache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1166881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1166881</guid><dc:creator><![CDATA[muh]]></dc:creator><pubDate>Thu, 02 Nov 2006 11:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Thu, 02 Nov 2006 12:41:10 GMT]]></title><description><![CDATA[<p>muh schrieb:</p>
<blockquote>
<p>Ich persönlich mache meine Variablen immer private und arbeite mit Zugriffsfunktionen. Das ist aber Geschmackssache.</p>
</blockquote>
<p>Nein ist es nicht. Membervariablen, die public sind, zerschießen dir die Datenkapselung. Das ist böse und unter allen Umständen zu meiden!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1166922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1166922</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Thu, 02 Nov 2006 12:41:10 GMT</pubDate></item><item><title><![CDATA[Reply to objekt global erreichbar on Thu, 02 Nov 2006 13:12:56 GMT]]></title><description><![CDATA[<p>muh schrieb:</p>
<blockquote>
<p>Ich persönlich mache meine Variablen immer private und arbeite mit Zugriffsfunktionen. Das ist aber Geschmackssache.</p>
</blockquote>
<p>Manchmal wünsche ich mir sowas wie die Get- und Set-Funktionen von C# :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1166955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1166955</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 02 Nov 2006 13:12:56 GMT</pubDate></item></channel></rss>