namespace android {
extern int i; // declare here but define somewhere
void foo();
}
用於確定特定名稱內的變量和函數。如果要聲明這些變量/函數,則必須使用範圍解析運算符::
。例如,
int main()
{
android::foo();
}
此外,還有用於將所有namespace
內容在一個單一的機構的實例沒有限制。您可以將namespace android
正文分佈在多個文件中。例如
// x.cpp
namespace android {
void somefunc_1();
}
// y.cpp
namespace android {
void somefunc_w();
}
現在,有時候,你可能會發現使用::
操作不方便所有的時間和不必要再製造的名稱。當時可以使用using namespace
功能。這可以在函數範圍/名稱空間範圍/全局範圍(在class
範圍內不允許)中聲明。
int main()
{
using namespace android;
foo(); // ok
}
void bar()
{
foo(); // error! 'foo' is not visible; must access as 'android::foo()'
}
假如你提到/宣稱using namespace android;
全球(以上main()
),那麼,你可以訪問foo()
因爲它是在Bar()
也。
你需要了解C++的命名空間是如何工作的,他們是爲了什麼。 –
對不起,我是C++的新手,我只知道「using namespace xxx」。感謝您的評論,我會更多地研究它。謝謝。 –
:-)酷Bohan Lu - 所有的使用開始於某處 - 我的建議是儘可能地學習,並提出一個非常具體的問題。另外iammilind寫了一個很好的答案 –