我有一個需要「使用無名命名空間創建常量變量」的項目,我需要與另一個.cpp文件中的函數共享它。它說變量聲明可以在他們自己的文件中。我提到了使用extern關鍵字,並且我想出瞭如何使用extern,在頭文件中聲明var,並聲明like extern const char varname;
,在我的main.cpp中爲它指定一個值(全局在主函數之上的),並且能夠在其他.cpp文件中使用它。但我不確定如何使用未命名的名稱空間。在一個示例文件,他們必須在主文件中的以下內容:extern常量,無名命名空間
namespace
{
extern const double time = 2.0;
}
但是現在有例如如何訪問在另一個.cpp文件。我試圖用我的變量做這件事,我得到了另一個文件中的錯誤,我嘗試使用它,說它沒有在該範圍內聲明。
有人可以提供一些見解,我應該在這裏做什麼來利用這兩件事?
我不認爲你明白你的任務。使用未命名名稱空間的要點是,在其中定義的函數和變量不能從其他.cpp文件(或使用適當的術語翻譯單元)中看到。 – SergeyA
所述的轉讓似乎是矛盾的。未命名名稱空間中的項目不能與任何其他翻譯單元的名稱共享。我想你可以用'originalfile.cpp'代碼中的'#include「otherfile.cpp」'與另一個文件'共享',但這真的是作弊。 –
嗯。那麼它說使用未命名的名稱空間聲明常量,我必須與其他函數分享它,並且它不能通過引用傳遞。它具體建議使用extern。所以是的,我不確定它想要什麼。 – windy401