<?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[Object Factory und Initalisierung von statischen Variablen]]></title><description><![CDATA[<p>Ich benutze eine Variante der Object Factory.<br />
Die einzelnen abgeleiteten Klassen registrieren sich bei der Grundklasse über eine Funktion.<br />
Diese Funktion wird mittels eine statische Variable beim Programmstart aufgerufen.</p>
<p>Also in etwa so:</p>
<pre><code>bool registerThis_ = register(typeID, pointerZuMakerFunktion);
</code></pre>
<p>Nun sehe ich jedoch ein potentielles Problem darin, dass die Initialisierungsreihenfolge von statischen Variablen in C++ nicht fest vorgegeben ist. Und daher können die Variablen, welche die Registrierungen speichern sollen, noch nicht initialisiert sein, bevor die Registrier-Funktion aufgerufen wird.</p>
<p>Es funktioniert zwar momentan, aber ich möchte halt nicht dass die Funktionalität von dieser Unbekannten abhängt.<br />
Kann man dieses Problem lösen oder ist die Registrierung mittels statische-Variablen-Initialisierung einfach zum Scheitern verurteilt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278365/object-factory-und-initalisierung-von-statischen-variablen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 07:24:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278365.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Dec 2010 15:22:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Object Factory und Initalisierung von statischen Variablen on Sun, 05 Dec 2010 15:22:59 GMT]]></title><description><![CDATA[<p>Ich benutze eine Variante der Object Factory.<br />
Die einzelnen abgeleiteten Klassen registrieren sich bei der Grundklasse über eine Funktion.<br />
Diese Funktion wird mittels eine statische Variable beim Programmstart aufgerufen.</p>
<p>Also in etwa so:</p>
<pre><code>bool registerThis_ = register(typeID, pointerZuMakerFunktion);
</code></pre>
<p>Nun sehe ich jedoch ein potentielles Problem darin, dass die Initialisierungsreihenfolge von statischen Variablen in C++ nicht fest vorgegeben ist. Und daher können die Variablen, welche die Registrierungen speichern sollen, noch nicht initialisiert sein, bevor die Registrier-Funktion aufgerufen wird.</p>
<p>Es funktioniert zwar momentan, aber ich möchte halt nicht dass die Funktionalität von dieser Unbekannten abhängt.<br />
Kann man dieses Problem lösen oder ist die Registrierung mittels statische-Variablen-Initialisierung einfach zum Scheitern verurteilt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990105</guid><dc:creator><![CDATA[Osbios]]></dc:creator><pubDate>Sun, 05 Dec 2010 15:22:59 GMT</pubDate></item><item><title><![CDATA[Reply to Object Factory und Initalisierung von statischen Variablen on Sun, 05 Dec 2010 15:42:30 GMT]]></title><description><![CDATA[<p>Dafür benutzt man doch Funktionen folgender Bauart:</p>
<pre><code class="language-cpp">FooBase&amp; getFooBaseInstance()
{
    static FooBase foo;

    return foo; // Typo korrigiert
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1990110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990110</guid><dc:creator><![CDATA[bmario]]></dc:creator><pubDate>Sun, 05 Dec 2010 15:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Object Factory und Initalisierung von statischen Variablen on Sun, 05 Dec 2010 16:33:45 GMT]]></title><description><![CDATA[<p>Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1990123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1990123</guid><dc:creator><![CDATA[Osbios]]></dc:creator><pubDate>Sun, 05 Dec 2010 16:33:45 GMT</pubDate></item></channel></rss>