3 回答

TA貢獻1860條經驗 獲得超8個贊
using namespace std
c++ 中有名字空間的概念,它是為了解決不同版本代碼的兼容問題
如:
namespace A
{
void test();
}
namespace B
{
void test();
}
如果
using namespace A;
就是使用A的函數
using namespace B;
使用B的函數
不寫,
直接 A::test()
B::test() 也可以
std也是這個意思,
放在最前面即可,意思說,后面的采用std名字空間下的定義

TA貢獻1111條經驗 獲得超0個贊
例子:
#include
void show(int a)
{
cout<<"age = "<
//表明命名空間在這里沒有起到作用。
}
int main()
{
using namespace std;
int age;
cout<<"please input information:"<
cout<<"How ola are you?"<
cin>>age;
show(age);
return 0;
}
也就是說這種情況,只在這個函數中起作用,對于其他函數不起作用。
而放在#include后面的,就不會出現上面的問題,這就有點類似全局變量和局部變量的關系。函數內定義為局部變量,出了這個函數,別的函數不可以使用。
全局變量所有函數都可以使用。

TA貢獻1780條經驗 獲得超4個贊
都可以,作用域不一樣。
第一種是整個文件中都引入了std命名空間,第二種則是只在main函數中引入std命名空間。
如果為了貪圖方便,直接用第一種寫法也行,但是C++ Primer中建議用第二種寫法,這樣可以防止命名空間污染(在你不想引入它的地方也被引入了,就可能導致一些問題。)
另外無論如何,都不應該把using namspace 這種語句寫在頭文件中,很容易出問題的。
- 3 回答
- 0 關注
- 838 瀏覽
添加回答
舉報