<?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[[OOP] Init Sequenz in Ctor oder nich?]]></title><description><![CDATA[<p>Moin Leudde</p>
<p>Frage zum Design.<br />
Eine Klasse soll SDL Funktionen kapseln, die ich so brauch (nicht komplett).<br />
Nun Frage zur Initsequenz der einzelnen Teil. Soll die komplett in den Ctor oder lieber in eine eigene Init() Funktion?</p>
<pre><code class="language-cpp">sdlApp::sdlApp()
{
        cout &lt;&lt; &quot;Initializing SDL&quot; &lt;&lt; endl;
        if ( SDL_Init( SDL_INIT_VIDEO ) &lt; 0 ) {
            cout &lt;&lt; SDL_GetError() &lt;&lt; endl;
            SDL_Quit();                       //BTW: Wie kann ich hier die Konstruktion abbrechen?
        }
        if ( SDL_Init( SDL_INIT_TIMER ) &lt; 0 ) {
            cout &lt;&lt; SDL_GetError() &lt;&lt; endl;
            SDL_Quit();
        }
        if ( SDL_Init( SDL_INIT_AUDIO ) &lt; 0 ) {
            cout &lt;&lt; SDL_GetError() &lt;&lt; endl;
            SDL_Quit();
        }
//...etc...
}
</code></pre>
<p>Und zweiten, wie kann ich der Funktion angeben, dass sie nur gewisse Teile initialisiert? Für jeden Teil (Video, Audio..) eine Bool Variable übergeben ist doch auch nicht hübsch oder?</p>
<p>Vieln Dank schonma<br />
Bis dennsn</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163542/oop-init-sequenz-in-ctor-oder-nich</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 04:20:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163542.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Oct 2006 17:40:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 17:40:13 GMT]]></title><description><![CDATA[<p>Moin Leudde</p>
<p>Frage zum Design.<br />
Eine Klasse soll SDL Funktionen kapseln, die ich so brauch (nicht komplett).<br />
Nun Frage zur Initsequenz der einzelnen Teil. Soll die komplett in den Ctor oder lieber in eine eigene Init() Funktion?</p>
<pre><code class="language-cpp">sdlApp::sdlApp()
{
        cout &lt;&lt; &quot;Initializing SDL&quot; &lt;&lt; endl;
        if ( SDL_Init( SDL_INIT_VIDEO ) &lt; 0 ) {
            cout &lt;&lt; SDL_GetError() &lt;&lt; endl;
            SDL_Quit();                       //BTW: Wie kann ich hier die Konstruktion abbrechen?
        }
        if ( SDL_Init( SDL_INIT_TIMER ) &lt; 0 ) {
            cout &lt;&lt; SDL_GetError() &lt;&lt; endl;
            SDL_Quit();
        }
        if ( SDL_Init( SDL_INIT_AUDIO ) &lt; 0 ) {
            cout &lt;&lt; SDL_GetError() &lt;&lt; endl;
            SDL_Quit();
        }
//...etc...
}
</code></pre>
<p>Und zweiten, wie kann ich der Funktion angeben, dass sie nur gewisse Teile initialisiert? Für jeden Teil (Video, Audio..) eine Bool Variable übergeben ist doch auch nicht hübsch oder?</p>
<p>Vieln Dank schonma<br />
Bis dennsn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164758</guid><dc:creator><![CDATA[nOOP in OOP]]></dc:creator><pubDate>Mon, 30 Oct 2006 17:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 17:48:51 GMT]]></title><description><![CDATA[<p>Init-Funktionen sind böse. Nicht ganz so böse wie goto oder globale Variablen, aber böse. Ein Konstruktur ist genau dafür da ein Objekt zu initialisieren. Und wenn der abgearbeitet ist, muß das Objekt fertig initialisiert sein. Das nur mal allgemein zum OOP-Aspekt.</p>
<p>Was ist so schlecht daran dem Konstruktor eine Reihe von bools zu übergeben? Kannst ja Default-Werte dafür vergeben. Eventuell wäre auch eine on-demand Initialisierung von SDL-Funktionalitäten möglich, die du nicht immer brauchst (d.h. jede relevante Funktion prüft, ob besagte SDL-Funktionalität bereits initialisiert wurde und holt das ggf. nach). Kann ich aber nicht beurteilen, ob das in diesem Fall geht/sinnvoll ist, weil ich mich mit SDL nicht auskenne.</p>
<p>Was das hier betrifft:</p>
<blockquote>
<p>//BTW: Wie kann ich hier die Konstruktion abbrechen?</p>
</blockquote>
<p>so mußt du an dieser Stelle eine Exception werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164764</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Mon, 30 Oct 2006 17:48:51 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 17:51:44 GMT]]></title><description><![CDATA[<p>Danke <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/1164769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164769</guid><dc:creator><![CDATA[nOOP in OOP]]></dc:creator><pubDate>Mon, 30 Oct 2006 17:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 18:59:18 GMT]]></title><description><![CDATA[<p>Du kannst anstelle von vielen Bools auch Flags übergeben, also einen Integer wo du mit einzelnen Bits (das sind dann die Flags) markierst was gemacht werden soll oder nicht. Also z.B. 1 für Video ja/nein, 2 für Audio ja/nein, 4 für Timer ja/nein, 8 für was auch immer etc.</p>
<p>Du solltest aber den ganzen SDL Init Code ggf. in eine eigene Klasse schmeissen die im Constructor bloss das init macht und im Destruktor das Quit. Und sonst nix. Die kannst du dann &quot;SdlInitScope&quot; oder so nennen, und einfach als Member Variable in der Applikation drin haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164817</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 30 Oct 2006 18:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 19:02:55 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Du kannst anstelle von vielen Bools auch Flags übergeben, also einen Integer wo du mit einzelnen Bits (das sind dann die Flags) markierst was gemacht werden soll oder nicht. Also z.B. 1 für Video ja/nein, 2 für Audio ja/nein, 4 für Timer ja/nein, 8 für was auch immer etc.</p>
</blockquote>
<p>Ah ja gute Idee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Du solltest aber den ganzen SDL Init Code ggf. in eine eigene Klasse schmeissen die im Constructor bloss das init macht und im Destruktor das Quit. Und sonst nix. Die kannst du dann &quot;SdlInitScope&quot; oder so nennen, und einfach als Member Variable in der Applikation drin haben.</p>
</blockquote>
<p>Kannst Du mir das erklären wieso? Also eigentlich ist das nich die Hauptapplikation, sondern nur für die Views (MVC-Model)..häng noch ein bisschen fest beim Design.</p>
<p>Dachte eigentlich, dass ich der sdlApp als Member andere Klassen übergebe für Rechtecke malen, Text ausgeben, Bilder blitten etc..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164826</guid><dc:creator><![CDATA[nOOP in OOP]]></dc:creator><pubDate>Mon, 30 Oct 2006 19:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 19:06:59 GMT]]></title><description><![CDATA[<p>Hmm, wegen der Flags:<br />
Ich hab inzwischen ein Singelton drauss gemacht, da kann ich dem Ctor ja gar keine Parameter übergeben..Wie sollt ichs lösen, über nen static Member?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164830</guid><dc:creator><![CDATA[nOOP in OOP]]></dc:creator><pubDate>Mon, 30 Oct 2006 19:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Mon, 30 Oct 2006 20:04:05 GMT]]></title><description><![CDATA[<p>singleton wird nur einmal initialisiert, wenn er also parameter braucht, werden sie beim ersten aufruf festgelegt. kannst es z.b. als paramater für die methode verwenden, die die instanz zurückgibt. spätere aufrufer haben halt pech gehabt, es sei denn, es gibt mehr als eine instanz (jeweils eine mit den entsprechenden parametern)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164877</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Mon, 30 Oct 2006 20:04:05 GMT</pubDate></item><item><title><![CDATA[Reply to [OOP] Init Sequenz in Ctor oder nich? on Tue, 31 Oct 2006 00:14:44 GMT]]></title><description><![CDATA[<blockquote>
<p>Kannst Du mir das erklären wieso? Also eigentlich ist das nich die Hauptapplikation, sondern nur für die Views (MVC-Model)..häng noch ein bisschen fest beim Design.</p>
<p>Dachte eigentlich, dass ich der sdlApp als Member andere Klassen übergebe für Rechtecke malen, Text ausgeben, Bilder blitten etc..</p>
</blockquote>
<p>Ok, dann habe ich das &quot;app&quot; im Klassennamen falsch interpretiert (ich dachte &quot;app&quot; wie in Application - und das ist für mich &quot;das Programm&quot; - also ganz ganz aussen).</p>
<p>Wenn du im restlichen Programm nirgends direkt SDL Funktionen verwendest, sondern immer nur über diese &quot;sdlApp&quot; Klasse, dann ist das sogar das bessere Design. Ist halt auch mehr Arbeit, da du Wrapper für alle SDL Funktionen schreiben musst die du verwendest, aber wie gesagt für mich das bessere Design. In dem Fall sorry für die Verwirrung, und bau das einfach wieder zurück <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="😉"
    /> (Die Singleton Lösung ist IMHO nicht optimal.)</p>
<p>Ich würde das &quot;sdlApp&quot; Teil dann aber &quot;SdlLibrary&quot; oder &quot;SdlWrapper&quot; oder so nennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165007</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 31 Oct 2006 00:14:44 GMT</pubDate></item></channel></rss>