<?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[Mehrere Parameterargumente]]></title><description><![CDATA[<p>Ich habe des öfteren solche Parameterangaben beobachten können, wo mehrere Argumente per Verknüpfungsoperator angegeben werde, hier ein Beispiel aus &lt;fstream&gt;</p>
<pre><code class="language-cpp">ofstream file;
file.open(&quot;example.bin&quot;, ios::out | ios::app | ios::binary);
</code></pre>
<p>Wie ist dies implementiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303824/mehrere-parameterargumente</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 03:54:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303824.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 May 2012 10:59:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 10:59:58 GMT]]></title><description><![CDATA[<p>Ich habe des öfteren solche Parameterangaben beobachten können, wo mehrere Argumente per Verknüpfungsoperator angegeben werde, hier ein Beispiel aus &lt;fstream&gt;</p>
<pre><code class="language-cpp">ofstream file;
file.open(&quot;example.bin&quot;, ios::out | ios::app | ios::binary);
</code></pre>
<p>Wie ist dies implementiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214438</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Wed, 23 May 2012 10:59:58 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:03:57 GMT]]></title><description><![CDATA[<p>Siehe binäre Operatoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214439</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 23 May 2012 11:03:57 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:03:58 GMT]]></title><description><![CDATA[<p>Der &quot;Verknüpfungsoperator&quot; ist eigentlich ein bitweises OR. Du übergibst hier nicht mehrere Parameter, sondern einen (und setzt sogenannte Flags). Mach dich am besten mal generell über Bitoperationen schlau, dann wird dir klar, wie genau das funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214440</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 23 May 2012 11:03:58 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:06:14 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Der &quot;Verknüpfungsoperator&quot; ist eigentlich ein bitweises OR. Du übergibst hier nicht mehrere Parameter, sondern einen (und setzt sogenannte Flags). Mach dich am besten mal generell über Bitoperationen schlau, dann wird dir klar, wie genau das funktioniert.</p>
</blockquote>
<p>danke, aber mehrere Parameter waren nicht gemeint <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="🙂"
    /> nur mehrere Argumente</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214443</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Wed, 23 May 2012 11:06:14 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:07:29 GMT]]></title><description><![CDATA[<p>RussianTux schrieb:</p>
<blockquote>
<p>danke, aber mehrere Parameter waren nicht gemeint <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="🙂"
    /> nur mehrere Argumente</p>
</blockquote>
<p>Erkläre mir den Unterschied!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214444</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 23 May 2012 11:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:18:05 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>RussianTux schrieb:</p>
<blockquote>
<p>danke, aber mehrere Parameter waren nicht gemeint <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="🙂"
    /> nur mehrere Argumente</p>
</blockquote>
<p>Erkläre mir den Unterschied!</p>
</blockquote>
<p>Vielleicht hab ich mich einfach nur falsch ausgedrückt, aber in meinen Augen sind mehrere Parameter:</p>
<pre><code class="language-cpp">function(&quot;dies&quot;, &quot;das&quot;, &quot;und das&quot;);
</code></pre>
<p>und mehrere Argumente IN einem Parameter:</p>
<pre><code class="language-cpp">function(DIES|DAS|UND_DAS);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2214448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214448</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Wed, 23 May 2012 11:18:05 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:25:19 GMT]]></title><description><![CDATA[<p>RussianTux schrieb:</p>
<blockquote>
<p>Vielleicht hab ich mich einfach nur falsch ausgedrückt...</p>
</blockquote>
<p>Ich verstehe nicht, wofür das für dich relevant ist. In file.open gibt es halt 2 Parameter, wovon der 2te nur ein Integerwert ist, der aus mehreren Binärwerten zusammengesetzt ist.</p>
<p>Wenn deine Frage noch immer nicht geklärt wurde solltest du vielleicht überlegen wie deine Frage für andere verständlich gestellt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214451</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 23 May 2012 11:25:19 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:28:09 GMT]]></title><description><![CDATA[<p>Aus Sicht der Funktion ist das nur ein Argument. Du setzt es allerdings für dich aus mehreren Flags zusammen (du setzt hier einzelne Bits). Um dich jetzt mal komplett zu verwirren: wenn du 1|2 übergibst, übergibst du 3. Und jetzt, wie schon mehrfach gesagt, lies mal in einem Buch/Tutorial was über Bitoperationen, bitweises AND, OR, NOT... <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: Und die Begriffe Argument und Parameter sind eigentlich gleichwertig (abgesehen von solchen <a href="http://msdn.microsoft.com/de-de/library/9kewt1b3(v=vs.80).aspx" rel="nofollow">Haarspaltereien</a>).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214452</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 23 May 2012 11:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 11:31:40 GMT]]></title><description><![CDATA[<p>(ios::out | ios::app | ios::binary) entspricht (0x02 | 0x08 | 0x20) in Visual Studio 2010's std libs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214455</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 23 May 2012 11:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 13:53:17 GMT]]></title><description><![CDATA[<p>Jetzt mal eine konkretere Frage, wie kann ich denn dann das binäre Ergebnis überprüfen, wie überprüfe ich nach einzelnen Flags?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214552</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Wed, 23 May 2012 13:53:17 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 14:02:31 GMT]]></title><description><![CDATA[<p>if(variable &amp; ios::binary)<br />
//ios::binary - Flag in variable ist gesetzt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214554</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 23 May 2012 14:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 14:03:49 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void foo(int flags)
{
    if(flags &amp; 0x1) //0001b
        bar();
    if(flags &amp; 0x2) //0010b
        foobar();

    if(flags &amp; 0x4) //0100b
    {
        barfoo();
        baz();
    }

    if(flags &amp; 0x8) //1000b
        foobaz();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2214556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214556</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Wed, 23 May 2012 14:03:49 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 14:06:24 GMT]]></title><description><![CDATA[<p><a href="http://www.cprogramming.com/tutorial/bitwise_operators.html" rel="nofollow">http://www.cprogramming.com/tutorial/bitwise_operators.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214558</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 23 May 2012 14:06:24 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Wed, 23 May 2012 16:02:04 GMT]]></title><description><![CDATA[<p>Alles klar, dankeschön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214594</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Wed, 23 May 2012 16:02:04 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Fri, 25 May 2012 14:38:59 GMT]]></title><description><![CDATA[<p>Nagut, mit der binären Zusammenstellung der Flags habe ich das nun hinbekommen, nun würde ich mich einen Schritt weiter wagen wollen und das derzeitige Problem angreifen, ich müsste nämlich mehrere String-Parameter und mehrere konstante Optionen übergeben, am besten erklärt es die Funktion &quot;auswahl&quot; welche angegebene Elemente auswählt:</p>
<pre><code class="language-cpp">auswahl(zahlen);
auswahl(&quot;text&quot;);
auswahl(&quot;text&quot; &amp;&amp; zahlen);
auswahl(&quot;text&quot; &amp;&amp; zahlen &amp;&amp; &quot;anderer text&quot; &amp;&amp; zeichen)
</code></pre>
<p><strong>zahlen</strong> , <strong>zeichen</strong> usw. repräsentieren konstante Optionen, wobei <strong>zahlen</strong> z.b. für alle Zahlen stehen können.</p>
<p>Wie wäre dies realisierbar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2215442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2215442</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Fri, 25 May 2012 14:38:59 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Fri, 25 May 2012 16:30:20 GMT]]></title><description><![CDATA[<p>Eine variable Anzahl an Parametern ist zwar möglich per Ellipsis (<a href="http://en.cppreference.com/w/cpp/utility/variadic" rel="nofollow">http://en.cppreference.com/w/cpp/utility/variadic</a>), aber die Frage ist hier, ob das wirklich nötig ist. Erkläre doch mal, was genau deine Funktion machen soll. Eventuell gibt es da alternative Möglichkeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2215490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2215490</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 25 May 2012 16:30:20 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Fri, 25 May 2012 17:14:20 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Eine variable Anzahl an Parametern ist zwar möglich per Ellipsis (<a href="http://en.cppreference.com/w/cpp/utility/variadic" rel="nofollow">http://en.cppreference.com/w/cpp/utility/variadic</a>), aber die Frage ist hier, ob das wirklich nötig ist. Erkläre doch mal, was genau deine Funktion machen soll. Eventuell gibt es da alternative Möglichkeiten.</p>
</blockquote>
<p>Es ist im Grunde nichts lebenswichtiges, aber ein Schritt zur Erleichterung der Schreibarbeit und Lesbarkeit des Codes.</p>
<p>Nehmen wir zum beispiel eine Text-Filter-Methode, diese Filtert bestimmte Zeichen bzw. Zeichenketten aus einer bestehenden Zeichenkette, um nun alle numerischen Zeichen, bestimmte Buchstaben oder Wörter herauszufiltern müsste man 100500 mal die selbe Filter-Methode ansprechen wie im folgenden Beispiel:</p>
<pre><code class="language-cpp">string str = &quot;Hier ist meine Zeichenkette aus [45] Zeichen!&quot;;
str.filter(&quot;4&quot;);
str.filter(&quot;5&quot;);
str.filter(&quot;!&quot;);
str.filter(&quot;[&quot;);
str.filter(&quot;]&quot;);
str.filter(&quot;Zeichen&quot;);
str.filter(&quot;aus&quot;);
</code></pre>
<p>Mal angenommen, ich möchte alle Ziffern (<em>'4'</em>, <em>'5'</em>), alle Sonderzeichen (<em>'!'</em>, <em>'['</em>, <em>']'</em>) und die Wörter <em>&quot;Zeichen&quot;</em> und <em>&quot;aus&quot;</em> aus dieser Zeichenkette herausfiltern, problematisch wäre, wenn der String alle Zahlen von 0-9 enthalten würde, und für jede Zahl die Methode aufgerufen werden müsste, eine konstante Option, die sofort alle Zahlen deklarieren würde, wäre eine viel bequemere Variante, das selbe würde dann auch für die Sonderzeichen gelten:</p>
<pre><code class="language-cpp">string str = &quot;Hier ist meine Zeichenkette aus [45] Zeichen!&quot;;
str.filter(zahlen);
str.filter(sonderzeichen);
str.filter(&quot;Zeichen&quot;);
str.filter(&quot;aus&quot;);
</code></pre>
<p>Der Code sieht nun schon deutlich besser aus als zuvor, manche würden es dabei belassen, aber ich persönlich würde gerne wissen, wie ich diese 4 Zielen in eine einzige bekomme und später von der folgenden Syntax profitieren:</p>
<pre><code class="language-cpp">string str = &quot;Hier ist meine Zeichenkette aus [45] Zeichen!&quot;;
str.filter(zahlen + sonderzeichen + &quot;Zeichen&quot; + &quot;aus&quot;);
</code></pre>
<p>Hiermit bringe ich also alle 4 Elemente, die ich herausfiltern möchte, &quot;unter 1 Dach&quot; und kann so viele Elemente gleichzeitig angeben wie ich nur möchte.</p>
<p>Der Additionsoperator und die Methode an sich sind natürlich nur zur Veranschaulichung da und kein direktes Beispiel, sie sollen nur das Prinzip meines Ziels erläutern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2215512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2215512</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Fri, 25 May 2012 17:14:20 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Sun, 27 May 2012 23:50:53 GMT]]></title><description><![CDATA[<p>Wirklich niemand ne Idee?</p>
<p>Dass es möglich ist weiß ich, nur nicht wie und ob sich der Arbeitsaufwand dafür lohnt, deswegen frage ich..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216189</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Sun, 27 May 2012 23:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Mon, 28 May 2012 00:01:25 GMT]]></title><description><![CDATA[<p>RussianTux schrieb:</p>
<blockquote>
<p>Wirklich niemand ne Idee?</p>
</blockquote>
<p><a href="http://www.boost.org/doc/libs/1_49_0/libs/assign/doc/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_49_0/libs/assign/doc/index.html</a><br />
oder<br />
<a href="http://erdani.com/publications/inline_containers.html" rel="nofollow">http://erdani.com/publications/inline_containers.html</a></p>
<p>bzw. geht eine ellipse in dieser situation ja auch - da du nur primitive Typen uebergibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216190</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 28 May 2012 00:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Mon, 28 May 2012 04:40:10 GMT]]></title><description><![CDATA[<p>Klingt für mich, als würdest du reguläre Ausdrücke suchen. Generell halte ich es für zweifelhaft ob du wirklich einen (längeren) String 100500 mal von vorne bis hinten durchsuchen willst. Da könnte sich der Aufwand vielleicht lohnen, einen regex parser dafür aufzusetzen. Insbesondere wenn du mehr als nur einen String damit bearbeiten willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216199</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 28 May 2012 04:40:10 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Parameterargumente on Mon, 28 May 2012 09:02:58 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Und die Begriffe Argument und Parameter sind eigentlich gleichwertig (abgesehen von solchen <a href="http://msdn.microsoft.com/de-de/library/9kewt1b3(v=vs.80).aspx" rel="nofollow">Haarspaltereien</a>).</p>
</blockquote>
<p>Warum Haarspaltereien? Ich hätte die Begriffe spontan ebenfalls so definiert. Ist doch sinnvoll, zwischen Aufrufer und aufgerufener Funktion zu unterscheiden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216232</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 28 May 2012 09:02:58 GMT</pubDate></item></channel></rss>