我以前遇到过一个问题,因为函数在没有调用的情况下就被重载了std::
。而且诅咒仍然时不时地发生,因为我不使用using namespace std;
.
删除 using namespace std 会导致程序得到垃圾结果 https://stackoverflow.com/questions/18740628/removing-using-namespace-std-causes-the-program-to-get-crap-results
有没有办法禁用所有来自 c 的非 std 函数,并且仅在命名空间下使用 c++ 函数std
(无需使用using namespace std;
)?
换句话说:如果我使用,我想得到一个错误sin()
而不是std::sin()
这样我就不会犯这个错误了。的c
我们不仅是为了罪,而且是为了与罪相冲突的每一个功能。math.h
.
不幸的是,没有办法做到这一点。规则是#include <math.h>
将所有名字放入全局命名空间,也允许放入std::
。相似地,#include <cmath>
将所有名称放入std::
,并且还允许将它们放入全局命名空间中。允许使用无关的命名空间的原因很简单,如果不对现有库进行重大修改,纯版本通常是无法实现的,而现有库甚至可能不受 C++ 编译器人员的控制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)