我在C++中知道,我們使用::
來限定變量或函數的命名空間,如myNamespace::a
。但我注意到一些用法,如::myFunction()
。這是否意味着該功能屬於全局命名空間?Does :: myFunction()屬於全局命名空間嗎?
1
A
回答
3
如果代碼編譯,那麼是的,::myFunction()
引用的是全局聲明myFunction
。
namespace local {
int myFunction() {}; // local namespace definition
};
int myFunction() {}; // global definition.
using namespace local;
int main() {
// myFunction(); // ambiguous two definitions of myFunction in current scope.
local::myFunction(); // uses local::myFunction();
::myFunction(); // uses global myfunction();
+0
@Leon,是的,是固定的。 –
3
是的,這意味着該變量,類型或功能以下必須在全局命名空間提供:
這時候本地定義陰影全局定義最常用的。
它可用於例如當一些由本地定義陰影:
struct S {
int i;
};
void f() {
struct S {
double d;
};
S a;
::S b;
static_assert(sizeof(a) != sizeof(b), "should be different types");
}
+1
查看['type_traits'](http://en.cppreference.com/w/cpp/header/type_traits)和['decltype'](http://en.cppreference.com/w/cpp/語言/ decltype)來解決具有相同大小的類型。例如:'static_assert(std :: is_same
相關問題
- 1. 全局命名空間中的命名空間C#
- 2. PHP:命名空間與全局命名空間
- 3. jQuery命名空間全局變量
- 4. 命名空間全局函數
- 5. pspell全局命名空間字典
- 6. 全局命名空間變量?
- 7. 導入全局命名空間在Python
- 8. AngularJs和全局命名空間
- 9. 命名空間:「用作」全局
- 10. 試圖從全局命名空間
- 11. 統一C#全局命名空間
- 12. 命名空間全局變量問題
- 13. 命名空間和全局變量
- 14. 污染全局命名空間
- 15. 在全局命名空間中默認包含equal()嗎?
- 16. 只有類需要全局命名空間前綴嗎?
- 17. 'nullptr_t`應該是全局命名空間的一部分嗎?
- 18. 我應該在PHP中命名空間全局函數嗎?
- 19. Python庫對全局命名空間有自然依賴嗎?
- 20. Visual Studio:全局命名空間優先於本地
- 21. 從另一個命名空間訪問C++全局命名空間
- 22. 在我的命名空間上下文中使用全局命名空間?
- 23. 命名空間內的全局空間函數
- 24. 其命名空間確實TOUPPER屬於
- 25. 查找鑑於命名空間屬性
- 26. Response.Redirect屬於哪個命名空間?
- 27. 我們可以將Dummy從全局命名空間移動到我自己的命名空間嗎?
- 28. 在匿名命名空間安全中使用名稱空間嗎?
- 29. Ant屬性全局到全局屬性空間
- 30. 屬於覆蓋命名空間的命名空間會發生什麼?
這只是確保了全局命名空間,而不是你在命名空間中出現該決議請訪問http://計算器。 com/questions/4269034 /這是什麼意思 - 前置雙冒號 – larrylampco