divide() mit default Parametern

Eine Funktion divide(), welche 2 int dividiert und als dritten Parameter einen bool nimmt. Wenn dieser bool true ist (was er defaultmäßig auch ist), dann wird bei einer Division durch 0 nur 0 zurückgegeben und die Division findet nicht statt.

    #include<iostream>
    using namespace std;

    double divide(int, int, bool = true);

    int main()
    {
      double zahl=3.1415;
      int divisor=0;

      cout<<zahl<<" / "<<divisor<<" = "<<divide(zahl,divisor)<<"\n";
    }

    double divide(int divident, int divisor, bool safe)
    {
      if(safe && divisor==0)
        return 0;

      return static_cast<double>(divident)/divisor;
    }

    /*
    Wenn wir hier nicht casten wuerden, dann waere der rueckgabewert ein int.
    Denn bei einer Rechnung mit 2 int kommt immer int heraus.
    zB ist 1/3 0 und nicht 0.333333
    wir brauchen also ein double um zu zeigen, dass wir double als ergebnis wollen,
    das geschieht indem wir einen der beiden operanden nach double casten.
    */

top