小编Pet*_*ter的帖子

声明可以影响std命名空间吗?

#include <iostream>
#include <cmath>

/* Intentionally incorrect abs() which seems to override std::abs() */
int abs(int a) {
    return a > 0? -a : a;
}

int main() {
    int a = abs(-5);
    int b = std::abs(-5);
    std::cout<< a << std::endl << b << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期望输出将是-55,但输出是-5-5.

我想知道为什么会发生这种情况?

它与使用std或什么有关?

c++ std reserved

95
推荐指数
2
解决办法
2546
查看次数

标签 统计

c++ ×1

reserved ×1

std ×1