<?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[Frage zum Programmierstil]]></title><description><![CDATA[<p>Ich habe in letzter Zeit öfters folgendes gemacht, da man so leicht mehrere Methoden hintereinander auf ein Objekt anwenden kann ohne viel Code:</p>
<pre><code class="language-cpp">class Klasse
{
public:
  Klasse&amp; MethodeA (int);
  Klasse&amp; MethodeB ();
  Klasse&amp; MethodeC (int,int);
}

...

Klasse&amp; k = *new Klasse;

k.MethodeA(1).MethodeB().MethodeC(2,3);
</code></pre>
<p>Was haltet ihr davon? Habe mir das beim ostream-operator &lt;&lt; abgeguckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138792/frage-zum-programmierstil</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 06:17:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138792.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Mar 2006 11:52:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 11:53:24 GMT]]></title><description><![CDATA[<p>Ich habe in letzter Zeit öfters folgendes gemacht, da man so leicht mehrere Methoden hintereinander auf ein Objekt anwenden kann ohne viel Code:</p>
<pre><code class="language-cpp">class Klasse
{
public:
  Klasse&amp; MethodeA (int);
  Klasse&amp; MethodeB ();
  Klasse&amp; MethodeC (int,int);
}

...

Klasse&amp; k = *new Klasse;

k.MethodeA(1).MethodeB().MethodeC(2,3);
</code></pre>
<p>Was haltet ihr davon? Habe mir das beim ostream-operator &lt;&lt; abgeguckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005824</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Wed, 01 Mar 2006 11:53:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 11:55:14 GMT]]></title><description><![CDATA[<p>find ich persönlich nich so gut!<br />
wenn du die ganzen ergebnisse dann noch zurückzuführen weißt!</p>
<p>sollten das allerdings funktionen ähnlich des &lt;&lt; sein, dann ist es imo schon in ordnung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005825</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Wed, 01 Mar 2006 11:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 12:20:09 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Neku schrieb:</p>
<blockquote>
<p>Was haltet ihr davon? Habe mir das beim ostream-operator &lt;&lt; abgeguckt.</p>
</blockquote>
<p>nicht viel, ist mir zu unübersichtlich. Im Unterschied zum &lt;&lt; Op hast du hier nicht so ne eindeutige optische Trennung.</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005856</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Wed, 01 Mar 2006 12:20:09 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 12:50:08 GMT]]></title><description><![CDATA[<p>Anders formatiert sieht das sehr gut aus:</p>
<pre><code class="language-cpp">k.MethodeA(1)
  .MethodeB()
  .MethodeC(2,3);
</code></pre>
<p>Ich verwende diese Technik auch in meinen Programmen. Beispielsweise habe ich eine Datenbankbibliothek, wo ich die Hostvariablen genau so setzen kann:</p>
<pre><code class="language-cpp">tntdb::Statement stmt = conn.prepare(
  &quot;select col1, col2&quot;
  &quot; from uhu&quot;
  &quot; where int_col = :a&quot;
  &quot;   and string_col = :b&quot;
  &quot;   and double_col = :c&quot;);

stmt.set(&quot;a&quot;, 5)
    .set(&quot;b&quot;, &quot;irgendein Wert&quot;)
    .set(&quot;c&quot;, 6.7);
</code></pre>
<p>Der Anwender hat trotzdem die Wahl, ob er das so nutzen möchte oder nicht. Alternativ kann man dann auch schreiben:</p>
<pre><code class="language-cpp">stmt.set(&quot;a&quot;, 5);
stmt.set(&quot;b&quot;, &quot;irgendein Wert&quot;);
stmt.set(&quot;c&quot;, 6.7);
</code></pre>
<p>Da kann jeder selbst auswählen, was lesbarer ist.</p>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005893</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 01 Mar 2006 12:50:08 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 12:52:28 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Anders formatiert sieht das sehr gut aus:</p>
<pre><code class="language-cpp">k.MethodeA(1)
  .MethodeB()
  .MethodeC(2,3);
</code></pre>
<p>Ich verwende diese Technik auch in meinen Programmen. Beispielsweise habe ich eine Datenbankbibliothek, wo ich die Hostvariablen genau so setzen kann:</p>
<pre><code class="language-cpp">tntdb::Statement stmt = conn.prepare(
  &quot;select col1, col2&quot;
  &quot; from uhu&quot;
  &quot; where int_col = :a&quot;
  &quot;   and string_col = :b&quot;
  &quot;   and double_col = :c&quot;);

stmt.set(&quot;a&quot;, 5)
    .set(&quot;b&quot;, &quot;irgendein Wert&quot;)
    .set(&quot;c&quot;, 6.7);
</code></pre>
<p>Der Anwender hat trotzdem die Wahl, ob er das so nutzen möchte oder nicht. Alternativ kann man dann auch schreiben:</p>
<pre><code class="language-cpp">stmt.set(&quot;a&quot;, 5);
stmt.set(&quot;b&quot;, &quot;irgendein Wert&quot;);
stmt.set(&quot;c&quot;, 6.7);
</code></pre>
<p>Da kann jeder selbst auswählen, was lesbarer ist.</p>
<p>Tommi</p>
</blockquote>
<p>Hmm sieht ganz nach SQLite 3x aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005895</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Wed, 01 Mar 2006 12:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 12:54:37 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Anders formatiert sieht das sehr gut aus:</p>
<pre><code class="language-cpp">k.MethodeA(1)
  .MethodeB()
  .MethodeC(2,3);
</code></pre>
</blockquote>
<p>Sehr gute Idee!<br />
Ich muss mir auch noch überlegen ob ich das dann durchgängig für alle Funktionen mache, denn es wäre sicher chaotisch, wenn es mit manchen Methoden möglich wäre und mit anderen wieder nicht. Dann müsste ich aber auch bei Funktionen mit Rückgabewert immer einen zusätzlichen Parameter hinzufügen. Oder aber ich nenne Funktionen, die wieder das Objekt selbst zurückgeben, anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005897</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Wed, 01 Mar 2006 12:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 13:04:06 GMT]]></title><description><![CDATA[<p>Also für Methoden, die etwas an *this verändern, kann ich mir diese Notation noch vorstellen (z.B. die Stream-Operatoren oder evil's set(..)-Beispiel). Aber im Allgemeinen dürfte das eher verwirrend als hilfreich sein.</p>
<p>(obwohl - gelegentlich habe ich mich schon geärgert, daß C++ kein WITH hat)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005909</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Wed, 01 Mar 2006 13:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Wed, 01 Mar 2006 22:28:43 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>(obwohl - gelegentlich habe ich mich schon geärgert, daß C++ kein WITH hat)</p>
</blockquote>
<p>Nicht unbedingt zum Nachmachen empfohlen ... aber:</p>
<pre><code class="language-cpp">struct Foo {
     int a, b, c, d;
};

int main(void)
{
     Foo my_long_var_name;

     { Foo&amp; _ = my_long_var_name;
          _.a = 1;
          _.b = 2;
          _.c = 3;
          _.d = 4;
     }
     // ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1006249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1006249</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 01 Mar 2006 22:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Programmierstil on Thu, 02 Mar 2006 07:39:41 GMT]]></title><description><![CDATA[<p>evilissimo schrieb:</p>
<blockquote>
<p>...</p>
<p>Hmm sieht ganz nach SQLite 3x aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Tntdb ist eine datenbankunabhängige Schnittstelle. Momentan habe ich Treiber für Postgresql, SQLite 3 und Mysql. Zu finden unter <a href="http://www.tntnet.org/tntdb.hms" rel="nofollow">http://www.tntnet.org/tntdb.hms</a>.</p>
<p>Gruß</p>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1006393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1006393</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Thu, 02 Mar 2006 07:39:41 GMT</pubDate></item></channel></rss>