我才意识到,我应该包括#include<cstdlib>要求abs()的abs()功能.
#include<iostream>
using namespace std;
int main()
{
int result;
result = abs(-10);
cout << result << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码仍然有效,即使我忘记了重要的标题(#include<cstdlib>)?
那是因为iostream间接包含了定义abs().标准允许它,但不应该依赖它,因为它依赖于实现(即您的代码可能无法在其他编译器上编译).