gpt4 book ai didi

c++ - 使用命名空间的全局变量

转载 作者:行者123 更新时间:2023-11-30 02:22:13 24 4
gpt4 key购买 nike

我必须在整个项目中使用我的变量。我刚刚在命名空间中定义了两个字符串变量,并在 main.cpp 中引用了这个头文件。

这里是 App.h 和 App.cpp:

应用.h

#include <string>
#include <iostream>

using namespace std;

namespace App
{
extern string FingerPrint;
extern string FingerPrintID;
}

应用.cpp

#include "App.h"

using namespace std;

string FingerPrint = "";
string FingerPrintID = "";

我正在尝试像这样在 main.cpp 中使用这个变量:

主要.cpp

#include "App.h"
#include "Helper.h"

using namespace std;

int main()
{
App::FingerPrint = Helper().GetFingerPrint();
App::FingerPrintID = Helper().GetFingerPrintID();

cout<<"FingerPrintID: "<<App::FingerPrintID<<endl;
cout<<"FingerPrint: "<<App::FingerPrint<<endl;

return 0;
}

当我编译这段代码时,我得到了这个错误:

CMakeFiles/HardwareService.dir/main.cpp.o: In function main':
/home/debian/Development/clion-workspace/app/main.cpp:19: undefined
reference to
App::FingerPrint' /home/debian/Development/clion-workspace/app/main.cpp:20: undefined reference to App::FingerPrintID'
/home/debian/Development/clion-workspace/app/main.cpp:23: undefined
reference to
App::FingerPrintID' /home/debian/Development/clion-workspace/app/main.cpp:24: undefined reference to `App::FingerPrint'

但是如果我不使用 namespace 并在没有“App::”的情况下使用这个变量,它就可以工作。像这样:

应用.h

#include <string>
#include <iostream>

using namespace std;

extern string FingerPrint;
extern string FingerPrintID;

应用.cpp

#include "App.h"

using namespace std;

string FingerPrint = "";
string FingerPrintID = "";

主要.cpp

#include "App.h"
#include "Helper.h"

using namespace std;

int main()
{
FingerPrint = Helper().GetFingerPrint();
FingerPrintID = Helper().GetFingerPrintID();

cout<<"FingerPrintID: "<<FingerPrintID<<endl;
cout<<"FingerPrint: "<<FingerPrint<<endl;

return 0;
}

没有这样的问题。

我可以在命名空间中使用全局变量吗?如果可以,我该如何使用?

最佳答案

你没有说你想在 app.cpp 的 app 命名空间中使用你的变量

#include "App.h"

using namespace std;

string App::FingerPrint = "";
string App::FingerPrintID = "";

应该做的工作

关于c++ - 使用命名空间的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47532644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com