gpt4 book ai didi

c++ - 如何访问在命名空间中声明的变量到另一个cpp文件

转载 作者:行者123 更新时间:2023-11-28 06:13:11 28 4
gpt4 key购买 nike

螺旋测试.h

#ifndef SPIRALTEST_H_
#define SPIRALTEST_H_
namespace eveready
{
struct TNotes{
int pie;
void meth();
};
extern TNotes tell;
}
#endif /* SPIRALTEST_H_ */

螺旋测试.cpp

#include "SpiralTest.h"

namespace eveready
{
void TNotes::meth(){
pie=0;
}
}

现在我正在尝试将变量 pie 访问到 abc.cpp

abc.cpp

#include "SpiralTest.h"
using namespace eveready;
tell.meth();

但是编译的时候报错(.text+0x49): 对 `everready::tell' 的 undefined reference

我也试过 `everready::tell.meth();但它再次显示相同的错误。我该怎么办..?

最佳答案

这个

extern TNotes tell;

只是名称tell 的声明。您必须在 abc.cpp

中定义相应的对象
#include "SpiralTest.h"
using namespace eveready;

//...

TNotes tell;
//..
tell.meth();

考虑到函数调用必须在其他函数中。它可能不在命名空间中。

关于c++ - 如何访问在命名空间中声明的变量到另一个cpp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842986/

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