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.
*/