/////// union /////// #include union IntDouble { int ival; double dval; }; IntDouble divide(int a, int b, int& evenflag) { IntDouble ans; // union object if ( (evenflag = !(a % b)) ) // even division ans.ival = a/b; // ans is int else // otherwise ans.dval = a /double(b); // ans is double return(ans); } int main() { int flag, a=16, b=4, c=3; IntDouble x = divide(a,b,flag); if ( flag ) cout << a << '/' << b << " = " << x.ival << "\n"; else cout << a << '/' << b << " = " << x.dval << "\n"; x = divide(a,c,flag); if ( flag ) cout << a << '/' << c << " = " << x.ival << "\n"; else cout << a << '/' << c << " = " << x.dval << "\n"; }