tags:

views:

106

answers:

1

I just realized that I am supposed to include the #include<cstdlib> required by abs() for the abs() function.

 #include<iostream>
    using namespace std;
    int main()
    {
        int result;
        result = abs(-10);
        cout << result << "\n";
        return 0;

    }

Why does this code still work, even though I forgot the important header (#include<cstdlib>)?

+8  A: 

That's because iostream indirectly includes definition for abs(). It is allowed by the Standard, but should not be relied upon, because it's implementation-dependant (i.e. your code may not compile on some other compilers).

atzz
In other words, just include #include<cstdlib> to avoid problems in the future, thanks atzz.
Newb