<?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[Singleton vs. globale Klasseninstanz vs. Funktionen]]></title><description><![CDATA[<p>Ich habe einen Microcontroller. Die Ansteuerung der Pins (GPIOs, I²C, ADC/DAC, etc ...) soll gekapselt werden.</p>
<p>Aktuell gehe ich so vor, dass ich alles in normale Funktionen packe. Dennoch sehe ich oft, dass solche Dinge auch in Klassen gekapselt werden. Ich frage mich jedoch, wieso?</p>
<p>Die Hardwareschnittstelle wird sich nicht ändern, und ich hab auch nichts davon einen Pin mehrmals zu instanzieren. Gibt es einen wesentlichen Grund warum man das trotzdem machen sollte/kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337682/singleton-vs-globale-klasseninstanz-vs-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 19:43:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337682.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Apr 2016 00:18:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Singleton vs. globale Klasseninstanz vs. Funktionen on Wed, 20 Apr 2016 00:18:52 GMT]]></title><description><![CDATA[<p>Ich habe einen Microcontroller. Die Ansteuerung der Pins (GPIOs, I²C, ADC/DAC, etc ...) soll gekapselt werden.</p>
<p>Aktuell gehe ich so vor, dass ich alles in normale Funktionen packe. Dennoch sehe ich oft, dass solche Dinge auch in Klassen gekapselt werden. Ich frage mich jedoch, wieso?</p>
<p>Die Hardwareschnittstelle wird sich nicht ändern, und ich hab auch nichts davon einen Pin mehrmals zu instanzieren. Gibt es einen wesentlichen Grund warum man das trotzdem machen sollte/kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493534</guid><dc:creator><![CDATA[Komische Frage]]></dc:creator><pubDate>Wed, 20 Apr 2016 00:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton vs. globale Klasseninstanz vs. Funktionen on Wed, 20 Apr 2016 06:24:57 GMT]]></title><description><![CDATA[<p>Die Frage ist nicht nur komisch, sondern so abstrakt, dass man sie nicht beantworten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493542</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 20 Apr 2016 06:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton vs. globale Klasseninstanz vs. Funktionen on Wed, 20 Apr 2016 13:10:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Die Frage ist nicht nur komisch, sondern so abstrakt, dass man sie nicht beantworten kann.</p>
</blockquote>
<p>Du übertreibst.<br />
Außerdem liegt das nur daran, dass der Threadersteller nicht weiß was er will ^^ (EDIT: Bzw das ist genau die Frage). Er braucht IMHO keine Singletons, bzw das wäre unnötiger code auf dem µC.<br />
Alles mit Funktionen zu machen ist eine Option, aber das geht schöner IMHO.</p>
<p>Beispiele, aus meinen eigenen wrappern:</p>
<p>für Bin. IO</p>
<pre><code>OutputPin &lt;PORTB, DDRB, 2&gt; led; // initialisiert pin
led.set();
led.unset();
led.toggle();
</code></pre>
<p>UART:</p>
<pre><code>UART u = UART(9600 /*baud*/);
u.put('c');
u.print(&quot;hello&quot;);
u.sendHex('c');
</code></pre>
<p>Analog:</p>
<pre><code>using analogIn = Pin &lt;PORTB, DDRB, 2&gt;;
AnalogInput &lt;analogIn&gt; analog; // initialisiert adc
analog.getValue()
</code></pre>
<p>Finde ich persönlich viel schöner zu benutzen als puren C Kram.<br />
EDIT: Ich habe auch darauf geachtet dass es frei von Overhead bleibt. Der code wird ins Minimum runterkompiliert. Das ist kein Argument.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493576</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Wed, 20 Apr 2016 13:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton vs. globale Klasseninstanz vs. Funktionen on Wed, 20 Apr 2016 13:17:51 GMT]]></title><description><![CDATA[<p>Dazu kommt mir gerade folgender Beitrag in den Sinn:<br />
<a href="https://www.youtube.com/watch?v=TYqbgvHfxjM" rel="nofollow">https://www.youtube.com/watch?v=TYqbgvHfxjM</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2493577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493577</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Wed, 20 Apr 2016 13:17:51 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton vs. globale Klasseninstanz vs. Funktionen on Wed, 20 Apr 2016 13:37:07 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<p>Dazu kommt mir gerade folgender Beitrag in den Sinn:<br />
<a href="https://www.youtube.com/watch?v=TYqbgvHfxjM" rel="nofollow">https://www.youtube.com/watch?v=TYqbgvHfxjM</a></p>
</blockquote>
<p>cooler Vortrag <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2493578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2493578</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Wed, 20 Apr 2016 13:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton vs. globale Klasseninstanz vs. Funktionen on Tue, 26 Apr 2016 07:22:19 GMT]]></title><description><![CDATA[<p>Ich habe auf dem AVR eigentlich immer Sorge, ob C++ nicht ein zu großer Overhead ist. Wenn überhaupt, dann würd ich tatsache statics nehmen. Aber eigentlich sind einfache Funktionen eher ausreichend..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2494123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2494123</guid><dc:creator><![CDATA[DocJunioR]]></dc:creator><pubDate>Tue, 26 Apr 2016 07:22:19 GMT</pubDate></item></channel></rss>