我嘗試寫一些命名空間的靜態方法和變量,以便有一組功能我可以從任何地方在代碼中使用。這是我有: 標題:故障使用命名空間和靜態方法
namespace CProfileIO
{
static void setAppDir(std::string appDir);
static int reloadProfiles();
static std::string directory;
static std::list<std::string> profilesList;
}
來源:
namespace CProfileIO
{
void setAppDir(std::string appDir)
{
directory = appDir;
}
int reloadProfiles()
{
// ...
}
} // namespace CProfileIO
然後在代碼的某個地方,我有:
#include "CProfileIO.h"
int main(int argc, char * argv[])
{
string appDir = string(dirname(*argv));
CProfileIO::setAppDir(appDir);
.
.
.
}
當我嘗試編譯,我得到的錯誤行我使用的功能:
... undefined reference to `CProfileIO::setAppDir(std::string)'
我無法弄清楚什麼是錯的。我會幫助所有人!
可能的[靜態變量在C++]重複(http://stackoverflow.com/questions/3698043/static-variables-in- C)。 – DevSolar
C++不是C#,'這裏static'裝置的功能,只在當前轉換單元是可見的。只需刪除關鍵字。 –
你真的認爲它與命名空間有關嗎? – juanchopanza