<?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[Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe mal wieder ein Frage und weiß dabei nicht wirklich weiter:</p>
<p>Und zwar habe ich sortier-Funktionen, die verschiedene Arrays sorteren sollen.<br />
Es handelt sich um überlandene Funktionen die einmal ein int, double und char Array sortieren sollen.</p>
<p>Die Sortierfunktionen die nur sortieren sollen, sollen im Namensraum sortieren liegen, die Funktionen die noch einen bool Parameter mit übergeben, sollen im Namensraum sortieren_und_rechnen liegen.<br />
Sortieren und Rechnen soll noch weiter Berechnungen durchführen bei int die Summe, bei bool das Produkt und bei char die ASCII Summe.</p>
<p>Jetzt möchte ich wissen, wie ich beim Aufruf der Funktion prüfen kann, ob ich die Funktionen aus dem Namensraum sortieren nutzen soll oder aus dem Namensraum sortieren_und_rechnen.</p>
<p>Je nach dem ob ein bool Parameter mitgeliefert wird oder nicht, standardmäßig soll der bool Parameter den default Wert false zugewiesen bekommen. Wo gebe ich den default Wert an?</p>
<p>Hier mal das Programm mit den Funktionen für den Namensraum sortieren:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

namespace sortieren {
          void sort (int x[], int y);
          void sort (double x[],int y,bool);
          void sort (char x[],int y, bool);
          }

/*namespace sortieren_und_rechnen {
          void sort (int x[], int y);
          void sort (double x[],int y,bool);
          void sort (char x[],int y,bool);
          } 
*/

int main() {

     int  a[] = {5,2,3,1,4};
     double b[] = {0.4, 0.5, 0.3, 0.2, 0.1};
     char c[] = {'x','b','a','r','t'};

     cout &lt;&lt; &quot;Datentyp int:&quot; &lt;&lt; endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;
     sortieren::sort (a,5);
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentyp double: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;
     sortieren::sort (b,5, true);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentype char: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;
     sortieren::sort (c,5, true);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;

     return 0;
     }

namespace sortieren {
    void sort(int num[], int end) {
      int i,j,akt,start=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(double num[], int end, bool) {
      int i,j,start=0;
      double akt;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(char num[], int end, bool) {
      int i,j,start=0;
      char akt;

      for(j=start ; j&lt;=end-1 ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/317971/funktion-auf-bool-parameter-überprüfen-mit-verschiedenen-namensräumen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 21:39:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317971.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Jun 2013 12:20:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 12:20:06 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe mal wieder ein Frage und weiß dabei nicht wirklich weiter:</p>
<p>Und zwar habe ich sortier-Funktionen, die verschiedene Arrays sorteren sollen.<br />
Es handelt sich um überlandene Funktionen die einmal ein int, double und char Array sortieren sollen.</p>
<p>Die Sortierfunktionen die nur sortieren sollen, sollen im Namensraum sortieren liegen, die Funktionen die noch einen bool Parameter mit übergeben, sollen im Namensraum sortieren_und_rechnen liegen.<br />
Sortieren und Rechnen soll noch weiter Berechnungen durchführen bei int die Summe, bei bool das Produkt und bei char die ASCII Summe.</p>
<p>Jetzt möchte ich wissen, wie ich beim Aufruf der Funktion prüfen kann, ob ich die Funktionen aus dem Namensraum sortieren nutzen soll oder aus dem Namensraum sortieren_und_rechnen.</p>
<p>Je nach dem ob ein bool Parameter mitgeliefert wird oder nicht, standardmäßig soll der bool Parameter den default Wert false zugewiesen bekommen. Wo gebe ich den default Wert an?</p>
<p>Hier mal das Programm mit den Funktionen für den Namensraum sortieren:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

namespace sortieren {
          void sort (int x[], int y);
          void sort (double x[],int y,bool);
          void sort (char x[],int y, bool);
          }

/*namespace sortieren_und_rechnen {
          void sort (int x[], int y);
          void sort (double x[],int y,bool);
          void sort (char x[],int y,bool);
          } 
*/

int main() {

     int  a[] = {5,2,3,1,4};
     double b[] = {0.4, 0.5, 0.3, 0.2, 0.1};
     char c[] = {'x','b','a','r','t'};

     cout &lt;&lt; &quot;Datentyp int:&quot; &lt;&lt; endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;
     sortieren::sort (a,5);
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentyp double: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;
     sortieren::sort (b,5, true);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentype char: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;
     sortieren::sort (c,5, true);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;

     return 0;
     }

namespace sortieren {
    void sort(int num[], int end) {
      int i,j,akt,start=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(double num[], int end, bool) {
      int i,j,start=0;
      double akt;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(char num[], int end, bool) {
      int i,j,start=0;
      char akt;

      for(j=start ; j&lt;=end-1 ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2334502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334502</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Wed, 26 Jun 2013 12:20:06 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 12:33:39 GMT]]></title><description><![CDATA[<p>Ok. Als erstes: Ich nehme an, es hat seine Gründe wieso du nicht <code>std::array</code> für deine Arrays verwendest.</p>
<blockquote>
<p>Die Sortierfunktionen die nur sortieren sollen, sollen im Namensraum sortieren liegen, die Funktionen die noch einen bool Parameter mit übergeben, sollen im Namensraum sortieren_und_rechnen liegen.</p>
</blockquote>
<p>Dann musst du das so deklarieren. Das muss so aber nicht sein - ein zusätzlicher Parameter verändert schließlich die Signatur, also kannst du doch auch überladen. (Ich weiß aber nicht was du willst)</p>
<blockquote>
<p>Jetzt möchte ich wissen, wie ich beim Aufruf der Funktion prüfen kann, ob ich die Funktionen aus dem Namensraum sortieren nutzen soll oder aus dem Namensraum sortieren_und_rechnen.</p>
</blockquote>
<p>Wie wäre es mit einem if-Statement? Anders geht es mit gegebenem Code nicht: Overload-Resolution gibt es nicht.* Machst du alle Namespace-Member mit einer using-Direktive bekannt, haben sie die gleichen Signaturen. (Also die jeweiligen Paare, natürlich nicht die Funktionen in einem Namespace)</p>
<p>Irgendwie verstehe ich aber immer noch nicht was genau du willst. Zeig mal Beispielcode, wie du es im Endeffekt haben möchtest.</p>
<p>*~Wenn die Bedingungen zur Compile-Zeit bekannt sind, könntest du auch Overload-Resolution mit dem Int2Type-Idiom probieren. Mit einem zusätzlichen Parameter: entweder <a href="http://en.cppreference.com/w/cpp/types/integral_constant" rel="nofollow">std::false_type oder std::true_type</a>.~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334504</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 26 Jun 2013 12:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 12:38:56 GMT]]></title><description><![CDATA[<p>Also die Sortierfunktion im Namensraum sortieren hat noch die bool Parameter, da ich erst das sortieren mit den gegebenen Funktionsaufrufen testen wollte.</p>
<p>Überladen wäre auch meine Idee gewesen, soll aber an der Stelle nicht verwendet werden. Die Funktionen sollen ja in verschiedenen Namensräumen liegen, oder geht das auch mit verschiedenen Namensräumen?</p>
<p>Wenn ich jetzt z.B. einen Funktionsaufruf mache mit:<br />
sort (a,5) dann soll er die Funktion im Namensraum sortieren aufrufen, ist der Funktionsaufruf aber sort(a,5,true) soll er die Funktion im Namensraum sortieren_und_rechnen aufrufen.</p>
<p>Defaultmäßig soll die bool Abfrage immer auf false stehen wenn dort kein Parameter gesetzt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334506</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Wed, 26 Jun 2013 12:38:56 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 12:39:05 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>sort (a,5) dann soll er die Funktion im Namensraum sortieren aufrufen, ist der Funktionsaufruf aber sort(a,5,true) soll er die Funktion im Namensraum sortieren_und_rechnen aufrufen.</p>
</blockquote>
<p>Dann mach eine globale Funktion sort, die dann - je nach bool-Parameter - entsprechend delegiert. Wenn die Bedingungen zur Compile-Zeit bekannt sind, nimm Template-Parameter und spezialisiere diese Funktion.</p>
<pre><code>// Die Elipse ist Pseudo-Code!!
void sort( ..., bool b = false )
{
    if( b )
        sortieren_und_rechnen::sort(...);
    else
        sortieren::sort(...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2334508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334508</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 26 Jun 2013 12:39:05 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 12:40:36 GMT]]></title><description><![CDATA[<p>Ja so könnte das klappen, ich versuche das mal. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334509</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Wed, 26 Jun 2013 12:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 12:45:29 GMT]]></title><description><![CDATA[<p>Ich bin nicht sicher, ob ich dich richtig verstanden habe:</p>
<pre><code>#include &lt;iostream&gt;

namespace sortieren_und_rechnen
{
  void sort(double[], int)
  {
    std::cout &lt;&lt; &quot;Sortieren und rechnen: double\n&quot;;
  }
  void sort(char[], int)
  {
    std::cout &lt;&lt; &quot;Sortieren und rechnen: char\n&quot;;
  }
  void sort(int[], int)
  {
    std::cout &lt;&lt; &quot;Sortieren und rechnen: int\n&quot;;
  }
}

namespace sortieren_ohne_rechnen
{
  void sort(double[], int)
  {
    std::cout &lt;&lt; &quot;Sortieren: double\n&quot;;
  }
  void sort(char[], int)
  {
    std::cout &lt;&lt; &quot;Sortieren: char\n&quot;;
  }
  void sort(int[], int)
  {
    std::cout &lt;&lt; &quot;Sortieren: int\n&quot;;
  }
}

namespace sortieren
{
  template &lt;typename T&gt; void sort(T t[], int y, bool b = false)
  {
    if (b)
      sortieren_und_rechnen::sort(t,y);
    else
      sortieren_ohne_rechnen::sort(t,y);
  }
}

int main()
{
  char c[3];
  double d[3];
  int i[3];

  sortieren::sort(c,3);
  sortieren::sort(d,3);
  sortieren::sort(i,3);
  sortieren::sort(c,3,true);
  sortieren::sort(d,3,true);
  sortieren::sort(i,3,true);
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> <strong>Aber:</strong> Die tausendmal bessere Variante:<br />
<strong>Eine</strong> Funktion:</p>
<pre><code>template&lt;typename iterator&gt; void sort(iterator begin, iterator end, bool b);
</code></pre>
<p>Oder vermutlich was du eigentlich möchtest:</p>
<pre><code>#include&lt;algorithm&gt;
#include&lt;numeric&gt;
</code></pre>
<p>für<br />
<a href="http://www.cplusplus.com/reference/algorithm/sort/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/sort/</a><br />
und<br />
<a href="http://www.cplusplus.com/reference/numeric/accumulate/" rel="nofollow">http://www.cplusplus.com/reference/numeric/accumulate/</a></p>
<p>Beachte, wie diese Funktionen eine Signatur haben, wie ich sie dir empfohlen habe (also mit Iterator und Template). Das ist einfach besser. Keine Nachteile, dafür universeller einsetzbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334511</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 26 Jun 2013 12:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 15:53:44 GMT]]></title><description><![CDATA[<p>Also die Bibliotheken kann ich leider nicht einbinden, bzw. darf ich net. Im Grunde genommen geht es hier um die Namensräume und den Zugriff darauf sowie die Überladung von Funktionen.</p>
<p>Ich habe es mal mit einem Template versucht, allerdings bekomme ich dann einen Compilerfehler. Nur ist mir nicht wirklich klar warum.</p>
<p>Eigentlich müsste die Funktion doch für die Typen ausgeprägt sein.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

//Funktionsprototype sortieren
namespace sortieren {
          void sort (int x[], int y);
          void sort (double x[],int y,bool);
          void sort (char x[],int y, bool);
          }

//Funktionsprototype sortieren_und_rechnen
namespace sortieren_und_rechnen {
          void sort (int x[], int y);
          void sort (double x[],int y);
          void sort (char x[],int y);
          } 

template &lt;typename T&gt; void sort(T x[], int y, bool b = false) 
  { 
    if (b) 
      sortieren_und_rechnen::sort(x,y); 
    else 
      sortieren::sort(x,y); 
  }

int main() {

     int  a[] = {5,2,3,1,4};
     double b[] = {0.4, 0.5, 0.3, 0.2, 0.1};
     char c[] = {'x','b','a','r','t'};

     cout &lt;&lt; &quot;Datentyp int:&quot; &lt;&lt; endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;
     sort (a,5);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentyp double: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;
     sort (b,5, true);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentype char: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;
     sort (c,5, true);
     cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;

     return 0;
     }

namespace sortieren {
    void sort(int num[], int end) {
      int i,j,akt,start=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(double num[], int end) {
      int i,j,start=0;
      double akt;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(char num[], int end) {
      int i,j,start=0;
      char akt;

      for(j=start ; j&lt;=end-1 ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }
}

namespace sortieren_und_rechnen {
    void sort(int num[], int end) {
      int i,j,akt,start=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(double num[], int end, bool) {
      int i,j,start=0;
      double akt;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }

    void sort(char num[], int end, bool) {
      int i,j,start=0;
      char akt;

      for(j=start ; j&lt;=end-1 ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2334569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334569</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Wed, 26 Jun 2013 15:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 16:06:54 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Also die Bibliotheken kann ich leider nicht einbinden, bzw. darf ich net.</p>
</blockquote>
<p>Und das hier?</p>
<pre><code>#include &lt;iostream&gt;
</code></pre>
<blockquote>
<p>Im Grunde genommen geht es hier um die Namensräume und den Zugriff darauf sowie die Überladung von Funktionen.</p>
</blockquote>
<p>Ok, das ist ein guter Grund.</p>
<blockquote>
<p>Ich habe es mal mit einem Template versucht, allerdings bekomme ich dann einen Compilerfehler. Nur ist mir nicht wirklich klar warum.</p>
</blockquote>
<p>Welchen? Beschreib deine Probleme immer <em>genau</em>.</p>
<p>Die folgenden beiden Funktionen haben einen bool in der Signatur, die anderen vier nicht. Das ist das Problem.</p>
<pre><code>namespace sortieren {
          void sort (double x[],int y,bool);
          void sort (char x[],int y, bool);
          }
</code></pre>
<p>Weiterhin passen einige deiner Funktionsdefinitionen nicht zu den Prototypen, andere fehlen ganz, andere sind im falschen Namensraum. Nochmal alles gründlich durchgehen und konsistent halten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334572</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 26 Jun 2013 16:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 16:14:24 GMT]]></title><description><![CDATA[<p>Ups, hattest Recht. Da habe ich wohl ein paar Formfehler eingebaut und die Exeption hat mich dann verwirrt. Peinlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Danke nochmals.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334576</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Wed, 26 Jun 2013 16:14:24 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion auf bool Parameter überprüfen mit verschiedenen Namensräumen on Wed, 26 Jun 2013 16:28:31 GMT]]></title><description><![CDATA[<p>Fertiges Programm:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

//Funktionsprototype sortieren
namespace sortieren {
          void sort (int x[], int y);
          void sort (double x[],int y);
          void sort (char x[],int y);
          }

//Funktionsprototype sortieren_und_rechnen
namespace sortieren_und_rechnen {
          void sort (int x[], int y);
          void sort (double x[],int y);
          void sort (char x[],int y);
          } 

template &lt;typename T&gt; void sort(T x[], int y, bool b = false) 
  { 
    if (b) 
      sortieren_und_rechnen::sort(x,y); 
    else 
      sortieren::sort(x,y); 
  }

int main() {

     int  a[] = {5,2,3,1,4};
     double b[] = {0.4, 0.5, 0.3, 0.2, 0.1};
     char c[] = {'x','b','a','r','t'};

     cout &lt;&lt; &quot;Datentyp int:&quot; &lt;&lt; endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; a[0] &lt;&lt;&quot; &quot; &lt;&lt;a[1] &lt;&lt; &quot; &quot; &lt;&lt;a[2] &lt;&lt;&quot; &quot; &lt;&lt;a[3] &lt;&lt;&quot; &quot; &lt;&lt;a[4] &lt;&lt; endl;
     sort (a,5);

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentyp double: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; b[0] &lt;&lt;&quot; &quot; &lt;&lt;b[1] &lt;&lt; &quot; &quot; &lt;&lt;b[2] &lt;&lt;&quot; &quot; &lt;&lt;b[3] &lt;&lt;&quot; &quot; &lt;&lt;b[4] &lt;&lt; endl;
     sort (b,5, true);

     cout &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Datentype char: &quot; &lt;&lt;endl;
     cout &lt;&lt; &quot;Original: &quot; &lt;&lt; c[0] &lt;&lt;&quot; &quot; &lt;&lt;c[1] &lt;&lt; &quot; &quot; &lt;&lt;c[2] &lt;&lt;&quot; &quot; &lt;&lt;c[3] &lt;&lt;&quot; &quot; &lt;&lt;c[4] &lt;&lt; endl;
     sort (c,5, true);

     return 0;
     }

namespace sortieren {
    void sort(int num[], int end) {
      int i,j,akt,start=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
      cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; num[0] &lt;&lt;&quot; &quot; &lt;&lt;num[1] &lt;&lt; &quot; &quot; &lt;&lt;num[2] &lt;&lt;&quot; &quot; &lt;&lt;num[3] &lt;&lt;&quot; &quot; &lt;&lt;num[4] &lt;&lt; endl;
    }

    void sort(double num[], int end) {
      int i,j,start=0;
      double akt;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
      cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; num[0] &lt;&lt;&quot; &quot; &lt;&lt;num[1] &lt;&lt; &quot; &quot; &lt;&lt;num[2] &lt;&lt;&quot; &quot; &lt;&lt;num[3] &lt;&lt;&quot; &quot; &lt;&lt;num[4] &lt;&lt; endl;
    }

    void sort(char num[], int end) {
      int i,j,start=0;
      char akt;

      for(j=start ; j&lt;=end-1 ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
      cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; num[0] &lt;&lt;&quot; &quot; &lt;&lt;num[1] &lt;&lt; &quot; &quot; &lt;&lt;num[2] &lt;&lt;&quot; &quot; &lt;&lt;num[3] &lt;&lt;&quot; &quot; &lt;&lt;num[4] &lt;&lt; endl;
    }
}

namespace sortieren_und_rechnen {
    void sort(int num[], int end) {
      int i,j,akt,start=0,summe=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
      cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; num[0] &lt;&lt;&quot; &quot; &lt;&lt;num[1] &lt;&lt; &quot; &quot; &lt;&lt;num[2] &lt;&lt;&quot; &quot; &lt;&lt;num[3] &lt;&lt;&quot; &quot; &lt;&lt;num[4] &lt;&lt; endl;
      summe = num[0] + num[1] + num[2] + num[3] + num[4];
      cout &lt;&lt; &quot;Summe: &quot; &lt;&lt; summe &lt;&lt; endl;

    }

    void sort(double num[], int end) {
      int i,j,start=0;
      double akt, produkt=0;

      for(j=start ; j&lt;=end ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
      cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; num[0] &lt;&lt;&quot; &quot; &lt;&lt;num[1] &lt;&lt; &quot; &quot; &lt;&lt;num[2] &lt;&lt;&quot; &quot; &lt;&lt;num[3] &lt;&lt;&quot; &quot; &lt;&lt;num[4] &lt;&lt; endl;
      produkt = num[0] * num[1] * num[2] * num[3] * num[4];
      cout &lt;&lt; &quot;Produkt: &quot; &lt;&lt; produkt &lt;&lt; endl;
    }

    void sort(char num[], int end) {
      int i,j,start=0,summe=0;
      char akt;

      for(j=start ; j&lt;=end-1 ; j++) {
        akt = num[j];
        i = j-1;
        while(i&gt;=start &amp;&amp; num[i]&gt;akt) {
          num[i+1] = num[i];
          i--;
        }
        num[i+1] = akt;
      }
      cout &lt;&lt; &quot;Sortiert: &quot; &lt;&lt; num[0] &lt;&lt;&quot; &quot; &lt;&lt;num[1] &lt;&lt; &quot; &quot; &lt;&lt;num[2] &lt;&lt;&quot; &quot; &lt;&lt;num[3] &lt;&lt;&quot; &quot; &lt;&lt;num[4] &lt;&lt; endl;
      summe = num[0] + num[1] + num[2] + num[3] + num[4];
      cout &lt;&lt; &quot;Summe ASCII-Zeichen: &quot; &lt;&lt; summe &lt;&lt; endl;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2334580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334580</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Wed, 26 Jun 2013 16:28:31 GMT</pubDate></item></channel></rss>