<?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[Grundsätzliche Frage zu globalen Variablen]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich frage mich, wie es in der gängigen Praxis aussieht, wenn ich z.B. einen Comport oder allgemein ein Objekt mit mehreren Parametern au seiner anderen Klasse heraus erstellen möchte.<br />
Dass die Parameter im Konstruktor übergeben werden ist denke ich mal klar, aber wie dann weiter? Im Konstruktor der benötigten Klasse die übergebenen Parameter weiter in die benötigten Funktionen übergeben - ebenfalls als (mehrere) Parameter? Oder alle Parameter in einer struct sammeln, diese dann übergeben, oder eben in globale (private) Variablen schreiben, sodass ich mich um die Übergabe an die Funktionen der Klasse garnicht mehr kümmern muss?</p>
<p>Also werden globale Variablen für (konstante) Parameter benutzt, oder ist das unschön, unpraktisch, was weiß ich?</p>
<p>Und was ist z.B. mit (nicht konstanten) Lesepuffern, auf die u.U. mehrere Funktionen zugreifen müssen, darf man die global deklarieren?<br />
Und wenn wo? Ich habe jetzt mehrere C++ Projekte gesehen, da werden die Variablen in den Headern deklariert und dann erst an beliebiger Stelle im Code initialisiert; erschien mir etwas unübersichtlich, wie macht man das in der Regel?</p>
<p>Danke für die Antwort! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286942/grundsätzliche-frage-zu-globalen-variablen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 15:31:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286942.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 May 2011 07:55:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Grundsätzliche Frage zu globalen Variablen on Thu, 19 May 2011 07:55:48 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich frage mich, wie es in der gängigen Praxis aussieht, wenn ich z.B. einen Comport oder allgemein ein Objekt mit mehreren Parametern au seiner anderen Klasse heraus erstellen möchte.<br />
Dass die Parameter im Konstruktor übergeben werden ist denke ich mal klar, aber wie dann weiter? Im Konstruktor der benötigten Klasse die übergebenen Parameter weiter in die benötigten Funktionen übergeben - ebenfalls als (mehrere) Parameter? Oder alle Parameter in einer struct sammeln, diese dann übergeben, oder eben in globale (private) Variablen schreiben, sodass ich mich um die Übergabe an die Funktionen der Klasse garnicht mehr kümmern muss?</p>
<p>Also werden globale Variablen für (konstante) Parameter benutzt, oder ist das unschön, unpraktisch, was weiß ich?</p>
<p>Und was ist z.B. mit (nicht konstanten) Lesepuffern, auf die u.U. mehrere Funktionen zugreifen müssen, darf man die global deklarieren?<br />
Und wenn wo? Ich habe jetzt mehrere C++ Projekte gesehen, da werden die Variablen in den Headern deklariert und dann erst an beliebiger Stelle im Code initialisiert; erschien mir etwas unübersichtlich, wie macht man das in der Regel?</p>
<p>Danke für die Antwort! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065653</guid><dc:creator><![CDATA[jakap]]></dc:creator><pubDate>Thu, 19 May 2011 07:55:48 GMT</pubDate></item><item><title><![CDATA[Reply to Grundsätzliche Frage zu globalen Variablen on Thu, 19 May 2011 08:11:32 GMT]]></title><description><![CDATA[<p>jakap schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Grundsätzlich sollte man globalen Variablen nach Möglichkeit vermeiden, oder sich ihren Nachteilen bewusst sein (z.B. das die Initialisierungsreihenfolge über verschiedene Header zu sehr schwer findbaren Fehlern führen kann, wenn eine globale Variable über eine andere initialisiert wird).</p>
<p>jakap schrieb:</p>
<blockquote>
<p>Dass die Parameter im Konstruktor übergeben werden ist denke ich mal klar, aber wie dann weiter? Im Konstruktor der benötigten Klasse die übergebenen Parameter weiter in die benötigten Funktionen übergeben...</p>
</blockquote>
<p>Innerhalb der Klasse ggf. als Membervariablen, nach außen über Parameter oder einer Struktur/Klasse (sofern sie logisch zusammen gehören, macht das ohnehin Sinn).</p>
<p>jakap schrieb:</p>
<blockquote>
<p>Also werden globale Variablen für (konstante) Parameter benutzt, oder ist das unschön, unpraktisch, was weiß ich?</p>
</blockquote>
<p>In dem Projekt in dem ich arbeite werden ausschließlich Konstanten als globale Variablen genutzt. Änderbare Werte werden niemals global gehalten, wenn wirklich global nötig wird entweder ein Singleton oder eine Methode verwendet, die eine Referenz auf eine statische Variable zurück gibt (Nicht viel besser als globale Variablen, aber mit einem Problem weniger, da bei der Verwendung die Initialisierung garantiert ist).</p>
<p>jakap schrieb:</p>
<blockquote>
<p>Und wenn wo? Ich habe jetzt mehrere C++ Projekte gesehen, da werden die Variablen in den Headern deklariert und dann erst an beliebiger Stelle im Code initialisiert; erschien mir etwas unübersichtlich, wie macht man das in der Regel?</p>
</blockquote>
<p>Extern im Header deklariert, und direkt unterhalb der Includes in der cpp definiert (So mache ich es jedenfalls).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065663</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 19 May 2011 08:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Grundsätzliche Frage zu globalen Variablen on Thu, 19 May 2011 16:35:07 GMT]]></title><description><![CDATA[<p>Alles klar, werde ich so machen, danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2065953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2065953</guid><dc:creator><![CDATA[jakap]]></dc:creator><pubDate>Thu, 19 May 2011 16:35:07 GMT</pubDate></item></channel></rss>