我有一堆这样的代码:
#include <iostream>
using namespace std;
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 7;
int b = 5;
swap(a, b);
cout << a << b; // prints 57 as expected
}
但是,如果我删除using namespace std
,编译器会抛出一个错误int
to int*
转换。为什么代码可以使用using namespace std
即使我没有使用该方法&
操作员?
在第一个例子中,std::swap
被称为,因为你using namespace std
。
第二个示例与第一个示例完全相同,因此您可能无法使用。
无论如何,如果你将函数重命名为my_swap
或类似的东西(并改变每次发生的情况),那么第一个代码不应该像预期的那样工作。或者,删除using namespace std
并打电话std::cin
and std::cout
明确地。我会推荐第二种选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)