<?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[Funktionen blockieren ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>man stelle sich eine Klasse vor merhmals an verschiedenen Stellen ein und dieselbe Funktion einer anderen Klasse aufruft.<br />
Nun sollen die Aurufe dieser Funktion aber nur stattfinden wenn ein bestimmtes Flag gesetzt ist.</p>
<p>Nun kann ich natürlich vor jedem Funktionsaufruf per IF das Flag prüfen, das ist mir klar. Da sich das Flag innerhalb der Klasse aber nicht mehr ändert (das ist sicher) wäre es ja sinnvoll das Flag am Anfang der Klasse zu prüfen und dann diese Funktionsaufrufe zu sperren. Gibt es da eine Möglichkeit ? Oder bleibt mir nur die Abfrage vor jedem Funktionsaufruf.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297722/funktionen-blockieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 08:11:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297722.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jan 2012 13:05:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 13:05:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>man stelle sich eine Klasse vor merhmals an verschiedenen Stellen ein und dieselbe Funktion einer anderen Klasse aufruft.<br />
Nun sollen die Aurufe dieser Funktion aber nur stattfinden wenn ein bestimmtes Flag gesetzt ist.</p>
<p>Nun kann ich natürlich vor jedem Funktionsaufruf per IF das Flag prüfen, das ist mir klar. Da sich das Flag innerhalb der Klasse aber nicht mehr ändert (das ist sicher) wäre es ja sinnvoll das Flag am Anfang der Klasse zu prüfen und dann diese Funktionsaufrufe zu sperren. Gibt es da eine Möglichkeit ? Oder bleibt mir nur die Abfrage vor jedem Funktionsaufruf.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164081</guid><dc:creator><![CDATA[scrabbl]]></dc:creator><pubDate>Thu, 05 Jan 2012 13:05:46 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 14:36:07 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u100590" rel="nofollow">Martin Richter</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f1" rel="nofollow">MFC (Visual C++)</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x, bzw. C++11)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164129</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 05 Jan 2012 14:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 14:42:41 GMT]]></title><description><![CDATA[<p>Du könntest einen Fuktionszeiger benutzen, der auf eine Dummyfunktion die nichts tut zeigt, wenn das Flag nicht gesetzt ist. Aber ich würde das Flag trotzdem eher mit if prüfen. Was gefällt Dir denn am if nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164134</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 05 Jan 2012 14:42:41 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 14:45:28 GMT]]></title><description><![CDATA[<p>scrabbl schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>man stelle sich eine Klasse vor merhmals an verschiedenen Stellen ein und dieselbe Funktion einer anderen Klasse aufruft.<br />
Nun sollen die Aurufe dieser Funktion aber nur stattfinden wenn ein bestimmtes Flag gesetzt ist.</p>
</blockquote>
<p>Wozu braucht man das? Beispiel?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164137</guid><dc:creator><![CDATA[kasseusse]]></dc:creator><pubDate>Thu, 05 Jan 2012 14:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 14:49:47 GMT]]></title><description><![CDATA[<p>Eine sehr ungenaue Fragestellung die alles mögliche heißen kann. Insbesondere der inflationäre Gebrauch des Wortes Klasse und der fehlende Gebrauch von Grammatik macht dich schwer zu lesen. Aus meinem Kaffeesatz habe ich dies herausgelesen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template&lt;bool&gt; struct Variante1
{
  void bar()
  {
    std::cout &lt;&lt; &quot;Hallo Welt!\n&quot;;
  }
};

template&lt;&gt; void Variante1&lt;false&gt;::bar()
{
  // nix
}

template&lt;bool&gt; struct Variante2
{
  void bar()
  {
    std::cout &lt;&lt; &quot;Hallo Welt!\n&quot;;
  }
};

template&lt;&gt; void Variante2&lt;false&gt;::bar();

int main()
{
  {
    Variante1&lt;true&gt; darf_funktion_aufrufen;
    Variante1&lt;false&gt; darf_funktion_nicht_aufrufen;
    darf_funktion_aufrufen.bar();   // Hallo Welt
    darf_funktion_nicht_aufrufen.bar(); // Nix
  }
  {
    Variante2&lt;true&gt; darf_funktion_aufrufen;
    Variante2&lt;false&gt; darf_funktion_nicht_aufrufen;
    darf_funktion_aufrufen.bar();   // Hallo Welt
    darf_funktion_nicht_aufrufen.bar(); // Linkerfehler
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2164140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164140</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 05 Jan 2012 14:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 14:51:18 GMT]]></title><description><![CDATA[<p>&quot;Nicht gefallen&quot; ist vlt der falsche Ausdruck. Aber bei einer großen Klasse kann es schonmal sein das dieser Funktionsaufruf der anderen Klasse 70mal vorkommt und ich müsste dann vor jeden diese IF-Abfrage setzen.</p>
<p>Das kam mir irgendwie unschön vor. Aussrdem wäre es laufzeittechnisch ja geschickter man könnte sich die ständigen Abfragen sparen und die diese Funktion am Anfang der Klasse einfach auf &quot;ignore&quot; stellen oder so. Aber eine solche Möglichkeit scheint es (leider) nicht zu geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164142</guid><dc:creator><![CDATA[scrabbl]]></dc:creator><pubDate>Thu, 05 Jan 2012 14:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 14:55:24 GMT]]></title><description><![CDATA[<p>scrabbl schrieb:</p>
<blockquote>
<p>&quot;Nicht gefallen&quot; ist vlt der falsche Ausdruck. Aber bei einer großen Klasse kann es schonmal sein das dieser Funktionsaufruf der anderen Klasse 70mal vorkommt und ich müsste dann vor jeden diese IF-Abfrage setzen.</p>
</blockquote>
<p>Wie wärs damit?</p>
<pre><code class="language-cpp">class klasse_die_funktion_anderer_klasse_aufruft
{
public:
  klasse_die_funktion_anderer_klasse_aufruft(bool f):flag(f){}

  void erste_funktion_von_der_es_noch_70_andere_gibt()
  {
    //...
    checked_call();
    //...
  }

  void zweite_funktion_von_der_es_noch_70_andere_gibt()
  {
    //...
    checked_call();
    //...
  }
private:
  andere_klasse anderes_objekt;
  bool flag;
  void checked_call()
  {
    if(flag)
    {
      anderes_objekt.funktion();
    }
  }
  //...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2164144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164144</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 05 Jan 2012 14:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 15:07:12 GMT]]></title><description><![CDATA[<p>Soviel Antworten...ich komme gar nicht nach, einer nach dem anderen <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>kasseusse schrieb:</p>
<blockquote>
<p>Wozu braucht man das? Beispiel?</p>
</blockquote>
<p>Es im Detail zu beschreiben würde den Rahmen sprengen. Grob gesagt, es werden zwei CPUs synchronisiert. Und dieser Funktionsaufruf dient dem Start der Synchronisation.</p>
<p>Nun gibt es aber Situationen in denen eine Synchronisation einfach nicht nötig ist, dort wäre es ja unnötig diese Funktion aufzurufen, kostet ja nur Zeit.</p>
<p>Ob beim Ausführen eine Synchronisation nötig ist oder nicht, sagt mir das genannte Flag. D.h. ist es gesetzt ist eine Synchronisation nötig und der Funktionsaufruf muss ausgeführt werden. Ist es 0 kann man ihn eigtl überspringen.</p>
<p>Da sich dies aber erst zur Laufzeit entscheidet, such ich eben nach einer einfachen Lösung wie ich diese Aufrufe ausser Gefecht setzen kann. Wie gesagt, das letzte Mittel ist das If vor jedem, hatte nur gehofft es gibt leichtere Möglichkeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164152</guid><dc:creator><![CDATA[scrabbl]]></dc:creator><pubDate>Thu, 05 Jan 2012 15:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen blockieren ? on Thu, 05 Jan 2012 15:19:58 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Wie wärs damit?</p>
</blockquote>
<p>Danke, das wäre eine Idee, einfach eine extra Methode dafür zu erstellen die die Abfrage macht und die Funktion aufruft und alle Funktionsaufrufe durch den Methodenaufruf zu ersetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164159</guid><dc:creator><![CDATA[scrabbl]]></dc:creator><pubDate>Thu, 05 Jan 2012 15:19:58 GMT</pubDate></item></channel></rss>