<?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[Schlechter Stil ?]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich wollte euch mal nach eurer Meinung fragen da des öfters mein Stil kritisiert wurde. <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="😉"
    /></p>
<p>Also, wie sieht es mit dem benutzen von C-Funktionen aus wenn es C++-Alternativen gibt?<br />
Ich persönlich ziehe zum Beispiel printf() immer std::cout vor.<br />
Da gibt es noch einen Haufen weiterer Beispiele aber ihr könnt es euch sicher denken was mein Punkt ist.</p>
<p>Dann...wie das mit der Rückgabe einer Funktion handeln? Die meisten C-Funktionen speichern den Rückgabewert ja direkt in einer Variable die als Pointer übergeben würde während das meiste in C++ den Wert zurückgibt.</p>
<p>Zb.</p>
<p>int value = calc(1,2);</p>
<p>oder</p>
<p>int value;<br />
calc(1,2, &amp;value);</p>
<p>Blödes Beispiel aber ist das Schreiben von Funktionen von zweiter Art in C++ schlechterer Stil?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247007/schlechter-stil</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 19:25:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247007.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Aug 2009 20:59:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 20:59:02 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich wollte euch mal nach eurer Meinung fragen da des öfters mein Stil kritisiert wurde. <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="😉"
    /></p>
<p>Also, wie sieht es mit dem benutzen von C-Funktionen aus wenn es C++-Alternativen gibt?<br />
Ich persönlich ziehe zum Beispiel printf() immer std::cout vor.<br />
Da gibt es noch einen Haufen weiterer Beispiele aber ihr könnt es euch sicher denken was mein Punkt ist.</p>
<p>Dann...wie das mit der Rückgabe einer Funktion handeln? Die meisten C-Funktionen speichern den Rückgabewert ja direkt in einer Variable die als Pointer übergeben würde während das meiste in C++ den Wert zurückgibt.</p>
<p>Zb.</p>
<p>int value = calc(1,2);</p>
<p>oder</p>
<p>int value;<br />
calc(1,2, &amp;value);</p>
<p>Blödes Beispiel aber ist das Schreiben von Funktionen von zweiter Art in C++ schlechterer Stil?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755385</guid><dc:creator><![CDATA[Icematix]]></dc:creator><pubDate>Tue, 04 Aug 2009 20:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 21:20:59 GMT]]></title><description><![CDATA[<blockquote>
<p>Also, wie sieht es mit dem benutzen von C-Funktionen aus wenn es C++-Alternativen gibt?<br />
Ich persönlich ziehe zum Beispiel printf() immer std::cout vor.<br />
Da gibt es noch einen Haufen weiterer Beispiele aber ihr könnt es euch sicher denken was mein Punkt ist.</p>
</blockquote>
<p>Wenn es sinnvoll ist C Funktionen zu nutzen, kann man sie nutzen. Aber aus Prinzip das nicht typsichere printf dem typsicheren cout vorzuziehen halte ich für einen Fehler.</p>
<blockquote>
<p>Blödes Beispiel aber ist das Schreiben von Funktionen von zweiter Art in C++ schlechterer Stil?</p>
</blockquote>
<p>Ja.<br />
Ausgabeparameter an sich sollten schon nicht mit Pointern gemacht werden, sondern mit Referenzen, diese sind sicherer und es gibt an dieser Stelle kein Grund, der mir einfällt, der für Pointer sprechen sollte =&gt; unnötige Unsicherheit.<br />
Dazu kommt, dass ich mich frage, warum man nicht die Funktionsrückgabe verwenden sollte. Mir fallen in C 2 Gründe ein: Rückgabe ist oft Fehlerbehandlung und man will dem Aufrufer die Speicherbehandlung überlassen, für ersteres gibt es in C++ Exceptions und für zweiteres Smartpointer etc..<br />
Wenn du also keinen Grund hast, solltest du die Rückgabe verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755396</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Tue, 04 Aug 2009 21:20:59 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 21:23:49 GMT]]></title><description><![CDATA[<p>Icematix schrieb:</p>
<blockquote>
<p>Hi.</p>
<p>Ich wollte euch mal nach eurer Meinung fragen da des öfters mein Stil kritisiert wurde. <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="😉"
    /></p>
<p>Also, wie sieht es mit dem benutzen von C-Funktionen aus wenn es C++-Alternativen gibt?<br />
Ich persönlich ziehe zum Beispiel printf() immer std::cout vor.<br />
Da gibt es noch einen Haufen weiterer Beispiele aber ihr könnt es euch sicher denken was mein Punkt ist.</p>
<p>Dann...wie das mit der Rückgabe einer Funktion handeln? Die meisten C-Funktionen speichern den Rückgabewert ja direkt in einer Variable die als Pointer übergeben würde während das meiste in C++ den Wert zurückgibt.</p>
<p>Zb.</p>
<p>int value = calc(1,2);</p>
<p>oder</p>
<p>int value;<br />
calc(1,2, &amp;value);</p>
<p>Blödes Beispiel aber ist das Schreiben von Funktionen von zweiter Art in C++ schlechterer Stil?</p>
<p>Grüße</p>
</blockquote>
<p>Ich persönlich finde übrigens das extreme Mischen von C und C++ nicht gut. Es kann beim Mixen von C und C++ Ein- und Ausgabeströmen sogar zu Problemen kommen.</p>
<p>Wenn es keinen Grund dafür gibt, das etwas unbedingt als Parameter übergeben werden muss, dann sollte man definitiv auf den Rückgabewert zurückgreifen. Dafür ist er ja da! Und das der Rückgabewert durch irgendwelche Fehlercodes &quot;blockiert&quot; ist, kann eigentlich auch nicht sein. Dafür gibt es ja dann wieder Exceptions...</p>
<p>Alles in allem ist das was du machst also nicht besonders empfehlenswert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755399</guid><dc:creator><![CDATA[asdasdasd]]></dc:creator><pubDate>Tue, 04 Aug 2009 21:23:49 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 21:25:18 GMT]]></title><description><![CDATA[<blockquote>
<p>Blödes Beispiel aber ist das Schreiben von Funktionen von zweiter Art in C++ schlechterer Stil?</p>
</blockquote>
<p>Nein, aber einfach unnötig. In C wird der Rückgabewert oftmals dazu benutzt, um anzuzeigen, ob die Funktion erfolgreich war, oder nicht. In C++ hat man hingegen Exceptions und somit ist der Rückgabewert frei für jegliche Benutzung. Ich persönlich finde diese Zeiger übergeben Sache extrem hässlich, weil man oftmals so gezwungen ist eine Variable anzulegen, nur um schnell den Wert darin zu speichern und damit weiterzuarbeiten.</p>
<p>Was die C Funktionen in C++ anbelangen, bevorzuge ich üblicherweise die C++ Funktionalitäten, weil sie oftmals mehr leisten (nicht unbedingt Geschwindikeit). Aber wenn man einen (guten) Grund hat C Funktionen zu benutzen, dann sollte man nicht davor zurückschreken und diese zu nutzen, &quot;nur weil es C ist&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755401</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 04 Aug 2009 21:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 21:34:15 GMT]]></title><description><![CDATA[<p>JustAnotherNoob schrieb:</p>
<blockquote>
<p>Ausgabeparameter an sich sollten schon nicht mit Pointern gemacht werden, sondern mit Referenzen, diese sind sicherer und es gibt an dieser Stelle kein Grund, der mir einfällt, der für Pointer sprechen sollte =&gt; unnötige Unsicherheit.</p>
</blockquote>
<p>Dazu gibt es <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-231001.html" rel="nofollow">hier</a> einen ganzen Thread zu (fängt ungefähr auf Seite 2 an, interessant zu werden). Im wesentlichen gibt es die Meinung, dass durch den Zeiger und das dafür verwendete &amp; besser lesbar wird, dass an der Stelle Modifikationen am Argument vorgenommen werden.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755409</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Tue, 04 Aug 2009 21:34:15 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 21:54:03 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich persönlich ziehe zum Beispiel printf() immer std::cout vor.</p>
</blockquote>
<p>In Zusammenhang mit templates wirst du mit printf übelst auf die Schnauze fliegen ;). Da sind die C++ Ströme echt besser. Und &quot;einfach&quot; wechseln kannst du bei Bedarf auch nicht, weil sich printf und iostream meistens nicht so gut vertragen. Kann man zwar richten, aber das ist dann auch recht mühselig, die synchron zu halten <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>
<p>Zu den Rückgabeparamtern: Wenn der Rückgabewert frei hat, sollte man ihn verwenden. Außer, man muss größere Datenblöcke zurückgeben, dann spart man damit Rechenzeit.</p>
<p>Im Allgemeinen ist aber</p>
<pre><code class="language-cpp">int result=calc(1,2)
</code></pre>
<p>besser lesbar als die Parameteralternative.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755414</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 04 Aug 2009 21:54:03 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Wed, 05 Aug 2009 04:09:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Außer, man muss größere Datenblöcke zurückgeben, dann spart man damit Rechenzeit.</p>
</blockquote>
<p>Wenn man Zeit und Lust hat, würde ich da empfehlen, sich mit dem &quot;move&quot; Prinzip vertraut zu machen.<br />
Sobald man einen Compiler hat, der r-value references unterstützt, kann man &quot;move&quot; sehr schön und einach implementieren.</p>
<p>Soll es auch mit anderen Compilern funktionieren, kann man es immer noch &quot;ausreichend gut&quot; nachbilden.</p>
<p>Wie das gehen kann, kann man sich z.B. in der Boost angucken, da wird das an einigen Stellen schon verwendet.<br />
U.a. in Boost.Thread.<br />
Evtl. auch schon einige der Container-Klassen.</p>
<p>----</p>
<p>Das übergeben grosser Datenmengen über Output-Parameter ist halt einfach ein unschöner Workaround. Da es in absehbarer Zeit weit bessere Möglichkeiten gibt, sollte man sich IMO garnichtmehr darauf einschiessen diesen Workaround zu verwenden.<br />
Bzw. wenn man schon darauf eingeschossen ist, versuchen umzudenken <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>
<p>EDIT: Typo korrigiert <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/1755434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755434</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 05 Aug 2009 04:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Tue, 04 Aug 2009 23:01:55 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>sollte man sich IMO garnichtmehr darauf <strong>einscheissen</strong> diesen Workaround zu verwenden.</p>
</blockquote>
<p>Ne, das sollte man wirklich nicht *scnr*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755435</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Tue, 04 Aug 2009 23:01:55 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechter Stil ? on Wed, 05 Aug 2009 00:30:29 GMT]]></title><description><![CDATA[<p>You made my day <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/1755447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755447</guid><dc:creator><![CDATA[Dummie]]></dc:creator><pubDate>Wed, 05 Aug 2009 00:30:29 GMT</pubDate></item></channel></rss>