<?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[[c++] Funktionsaufruf in if-anweisung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab folgenden Code:</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

if (testfkttyp == 1){
GABin2DecGenome genome(map,Objective1);}
else{
GABin2DecGenome genome(map,Objective2);}
</code></pre>
<p>Objective liefert jeweils einen mathematische Funktion zurück.<br />
Ich bekomme den Fehler:</p>
<pre><code>`genome' undeclared (first use this function)
</code></pre>
<p>Was mach ich hier denn falsch?</p>
<p>Grüße</p>
<p>guddy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/219584/c-funktionsaufruf-in-if-anweisung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 19:04:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219584.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Aug 2008 09:14:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:14:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab folgenden Code:</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

if (testfkttyp == 1){
GABin2DecGenome genome(map,Objective1);}
else{
GABin2DecGenome genome(map,Objective2);}
</code></pre>
<p>Objective liefert jeweils einen mathematische Funktion zurück.<br />
Ich bekomme den Fehler:</p>
<pre><code>`genome' undeclared (first use this function)
</code></pre>
<p>Was mach ich hier denn falsch?</p>
<p>Grüße</p>
<p>guddy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1559454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559454</guid><dc:creator><![CDATA[guddy]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:16:37 GMT]]></title><description><![CDATA[<p>kann es sein das du vergessen hast die Headerdatei einzubinden in der<br />
GABin2DecGenom</p>
<p>deklariert ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1559458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559458</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:16:37 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:23:10 GMT]]></title><description><![CDATA[<p>Was soll denn GABin2DecGenome überhaupt sein? Der Rückgabetyp? Wenn dann solltest du auch was zuweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1559461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559461</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:23:10 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:24:32 GMT]]></title><description><![CDATA[<p>Braunstein, so wie es ausschaut, könnte das auch eine Klasse sein die er dort &quot;aufruft&quot; <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/1559463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559463</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:24:56 GMT]]></title><description><![CDATA[<p>BTW: Das ist kein Funktionsaufruf, das ist eine Objektdefinition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1559464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559464</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:24:56 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:36:36 GMT]]></title><description><![CDATA[<p>es sieht aus, als ob es eine Objektdefinition sein soll. Andererseits steht schon im topic was von Funktionsaufruf - vielleicht ist sich der OT selbst nicht ganz im klaren was er da anstellt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1559478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559478</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 09:43:40 GMT]]></title><description><![CDATA[<p>ich vermute er will ein objekt je nach bedingung instanziern. da das objekt aber<br />
im if-körper angelegt wird, ist es nur in diesem scope sichtbar.</p>
<p>2 lösungsmöglichekeiten</p>
<ol>
<li></li>
</ol>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome genome(map, testfkttyp == 1 ? Objective1 : Objective2);
</code></pre>
<ol start="2">
<li></li>
</ol>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome genome; // setzt def-konstruktor und zuweisungsop vorraus
if (testfkttyp == 1)
    genome = GABin2DecGenome(map,Objective1);
else
    genome = GABin2DecGenome(map,Objective2);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1559491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559491</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Tue, 05 Aug 2008 09:43:40 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Tue, 05 Aug 2008 15:07:20 GMT]]></title><description><![CDATA[<p>oder er arbeitet mit zeigern...</p>
<p>ist aber was umständlicher wie ich finde...</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome *genome; 
if (testfkttyp == 1)
    genome = new GABin2DecGenome(map,Objective1);
else
    genome = new GABin2DecGenome(map,Objective2);
// berechnungen
delete genome;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1559710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1559710</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 05 Aug 2008 15:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Wed, 06 Aug 2008 08:33:33 GMT]]></title><description><![CDATA[<p>so gehts auch... Oder?</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome *genome = new GABin2DecGenome(map,() (testfkttyp == 1) ? Objective1 : Objective2);
// berechnungen
delete genome;
</code></pre>
<p>[/quote]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560010</guid><dc:creator><![CDATA[NochKuerzer]]></dc:creator><pubDate>Wed, 06 Aug 2008 08:33:33 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Wed, 06 Aug 2008 09:21:52 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>oder er arbeitet mit zeigern...</p>
<p>ist aber was umständlicher wie ich finde...</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome *genome; 
if (testfkttyp == 1)
    genome = new GABin2DecGenome(map,Objective1);
else
    genome = new GABin2DecGenome(map,Objective2);
// berechnungen
delete genome;
</code></pre>
</blockquote>
<p>Hat aber den Vorteil, dass</p>
<ul>
<li>genome auf verschiedene Objekte unterschiedlichen Typs (abgeleitet von GABin2DecGenome) zeigen kann,</li>
<li>GABin2DecGenome weder default-konstruierbar noch zuweisbar (operator=()) zu sein braucht und</li>
<li>bei sehr großen Klassen spart man Zeit, wenn man gleich &quot;richtig konstruiert&quot; und nicht erst def-konstr. und dann zuweist.</li>
</ul>
<p>Überhaupt würde ich dem OP raten, sich mal anzusehen, ob hier nicht Polymorphie das Design entscheidend verbessern würde.</p>
<p>NochKuerzer schrieb:</p>
<blockquote>
<p>so gehts auch... Oder?</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome *genome = new GABin2DecGenome(map,() (testfkttyp == 1) ? Objective1 : Objective2);
// berechnungen
delete genome;
</code></pre>
</blockquote>
<p>Das hat aber keine mir ersichtlichen Vorteile ggü. der oben genannten:</p>
<p>helferlein schrieb:</p>
<blockquote>
<p>...<br />
1.</p>
<pre><code class="language-cpp">int testfkttyp;
cin &gt;&gt; testfkttyp;

GABin2DecGenome genome(map, testfkttyp == 1 ? Objective1 : Objective2);
</code></pre>
<p>...</p>
</blockquote>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560059</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 06 Aug 2008 09:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Wed, 06 Aug 2008 14:22:01 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Hat aber den Vorteil, dass</p>
<ul>
<li>genome auf verschiedene Objekte unterschiedlichen Typs (abgeleitet von GABin2DecGenome) zeigen kann,</li>
<li>GABin2DecGenome weder default-konstruierbar noch zuweisbar (operator=()) zu sein braucht und</li>
<li>bei sehr großen Klassen spart man Zeit, wenn man gleich &quot;richtig konstruiert&quot; und nicht erst def-konstr. und dann zuweist.</li>
</ul>
</blockquote>
<p>das ist mal ein wort</p>
<p>sowas sucht man tagelang im internet wegen was brignen poitner und dann sprichts eienr zu nem anderen thema aus... n1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560274</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 06 Aug 2008 14:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Wed, 06 Aug 2008 14:40:51 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ja ist eine Objektdefinition mit dem constructor: GABin2DecGenome(const GABinDecPhenotyp &amp;, GAGenome::Evaluator objective) Leider funktioniert nur das:</p>
<pre><code class="language-cpp">GABin2DecGenome genome(map, testfkttyp == 1 ? Objective1 : Objective2);
</code></pre>
<p>Die anderen Codes bringen Fehler...<br />
Was bedeuten ? , : in dem Fall? Ersatz für die if-Schleife?</p>
<p>Wie kann ich den Ausdruck ändern um 3 Auswahlmöglichkeiten zu haben?</p>
<p>Was genau hab ich bei mir falsch gemacht?</p>
<p>Viele Grüße</p>
<p>Guddy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560287</guid><dc:creator><![CDATA[guddy]]></dc:creator><pubDate>Wed, 06 Aug 2008 14:40:51 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Wed, 06 Aug 2008 15:03:52 GMT]]></title><description><![CDATA[<p>Die Fehlermeldung kriegst du erst bei (scheinbarer) Benutzung der Variablen 'genome', stimmt's?</p>
<p>Da du jedoch zwei Variablen namens 'genome' in jeweils eigenen Blöcken (mit { ... } ) definiert hast, werden diese danach sofort wieder gelöscht und sind nicht mehr zugreifbar.</p>
<p>Du darfst nur genau 1 Variable definieren (entweder direkt oder als Zeiger bzw. Referenz) und darauf zugreifen (und diese muß sich natürlich im selben Gültigkeitsbereich (scope) befinden, wie der spätere Zugriff darauf).</p>
<p>Und &quot;a? b : c&quot; ist der sogenannte Bedingungsoperator (conditional operator), welcher als einziger drei-stellig ist.</p>
<p>Du kannst diesen dann auch verschachteln, z.B. a? (b? c : d) : e, d.h. a und b sind deine Bedingungen und c, d und e deine Ausdrücke.</p>
<p>P.S: Auch die Varianten mit dem Zeiger (GABin2DecGenome *genome = new GABin2DecGenome(...) ) funktionieren, nur mußt du dann natürlich beim Zugriff darauf diese dann dereferenzieren, also</p>
<pre><code class="language-cpp">(*genome).do();
//bzw.
genome-&gt;do();
</code></pre>
<p>Aber das sollte eigentlich in jedem Anfängerbuch bzw. -tutorial stehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560307</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 06 Aug 2008 15:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Wed, 06 Aug 2008 15:09:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also erstmal ist es (politisch) inkorrekt, von einer</p>
<p>guddy schrieb:</p>
<blockquote>
<p>...if-Schleife?...</p>
</blockquote>
<p>zu reden. Es ist immerhinhin ein Sprachelement zur bedingten <em>Verzweigung</em>.... <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="😉"
    /> <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>
<p>Das Konstrukt &quot;? : &quot; heißt &quot;arithmetisches if&quot; und funktioniert als</p>
<pre><code>[i]&lt;bedingung&gt;[/i] ? [i]&lt;statement bei &quot;wahr&quot;&gt;[/i] : [i]&lt;statement bei &quot;falsch&quot;&gt;[/i]
</code></pre>
<p>und wie beim if selbst, gibt's auch hier keine &quot;3. Möglichkeit&quot;, sondern musst (falls Du &gt;2 &quot;Zweige&quot; hast) entweder Schachteln</p>
<pre><code class="language-cpp">if(bedingung1) {
   if(bedingung2) {
      mache_1_und_2();
   }
   else {
      mache_1_und_nicht_2();
   }
}
else {
   mache_nicht_1();
}
</code></pre>
<p>oder mit switch (bei simplen Typen mit konstanten &quot;Wertmöglichkeiten&quot;)</p>
<pre><code class="language-cpp">switch(meineVariable) {
   case 0 : mache_var_0(); break;
   case 1 : mache_var_1(); break;
   case 2 : mache_var_2(); break;
   default: mache_var_unbekannter_wert();
}
</code></pre>
<p>Übrigens: Wenn es Dir lediglich darum geht, demselben Parameter des Konstruktor verschiedene Werte zuzuweisen, würde ich auch genau das tun ...</p>
<pre><code class="language-cpp">ObjectiveTyp objective;
switch(testfkttyp) {
   case 0 : objective = Objektiv0; break;
   case 1 : objective = Objektiv1; break;
   default: objective = Objektiv2;
}

GABin2DecGenome genome(map, objective);
</code></pre>
<p>(falls ObjectiveTyp nicht def-Konstruierbar oder zuweisbar sein sollte, kannst Du das auch mit Referenz machen)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560309</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 06 Aug 2008 15:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Thu, 07 Aug 2008 10:15:18 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich hab noch eine Frage. Wie kann ich folgendes realiesieren.</p>
<p>genome (map, objective):</p>
<p>Wenn objective = objective1 dann tue das<br />
Wenn nicht tue etwas anderes</p>
<p>Grüße</p>
<p>Guddy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560721</guid><dc:creator><![CDATA[guddy]]></dc:creator><pubDate>Thu, 07 Aug 2008 10:15:18 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Thu, 07 Aug 2008 11:13:00 GMT]]></title><description><![CDATA[<p>Äh? Mit</p>
<pre><code class="language-cpp">if( objective == Objective1)
{
} else
{
}
</code></pre>
<p>vielleicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560777</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 07 Aug 2008 11:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to [c++] Funktionsaufruf in if-anweisung on Thu, 07 Aug 2008 11:14:59 GMT]]></title><description><![CDATA[<p>guddy schrieb:</p>
<blockquote>
<p>Hallo Leute,</p>
<p>ich hab noch eine Frage. Wie kann ich folgendes realiesieren.</p>
<p>genome (map, objective):</p>
<p>Wenn objective = objective1 dann tue das<br />
Wenn nicht tue etwas anderes</p>
<p>Grüße</p>
<p>Guddy</p>
</blockquote>
<p>Ich würde (nochmal) sagen: Laufzeit-polymorphie mit <a href="http://en.wikipedia.org/wiki/Virtual_function" rel="nofollow">virtuellen Funktionen</a>.<br />
Alternativ noch statische Polymorphie mit <a href="http://en.wikipedia.org/wiki/Template_(C%2B%2B)" rel="nofollow">Templates</a>.</p>
<p>Beide Konstrukte sind für &quot;ähnlich bis auf ...&quot;-Situationen gemacht.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1560779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1560779</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 07 Aug 2008 11:14:59 GMT</pubDate></item></channel></rss>