次のようなコードがたくさんあります:
#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
int*
using namespace std
&
ベストアンサー1
最初の例では、std::swap
のため、 が呼び出されますusing namespace std
。 2 番目の例は最初の例とまったく同じなので、 を使用する必要がない可能性があります。
とにかく、関数の名前を またはmy_swap
それに似た名前に変更すると (すべての出現箇所を変更すると)、最初のコードは期待どおりに動作しなくなります。または、 を削除しておよびを明示的にusing namespace std
呼び出します。2 番目のオプションをお勧めします。std::cin
std::cout