提问人:nyedoardo 提问时间:9/1/2023 最后编辑:sepp2knyedoardo 更新时间:9/1/2023 访问量:54
无法访问命名空间中的函数 [已关闭]
Can't access function in namespace [closed]
问:
我刚刚创建了某种库来自动化一些 C++ 的东西,问题是,一个文件包含一个带有函数的命名空间,而另一个文件包含一个尝试调用该函数的类。
编译器说函数未定义。
文件1.cpp
namespace cs{
void func(){
//dosomething
}
}
文件2.cpp
class cx{
private:
void custom(){
cs::func(); //Compiler says "cs" has not been declared.
}
}
请帮忙。
答:
1赞
Remy Lebeau
9/1/2023
#1
您缺少 inside 的声明,例如:cs::func()
File2.cpp
文件2.cpp
namespace cs{
void func();
}
class cx{
private:
void custom(){
cs::func();
}
}
这将允许编译器知道函数在 中的存在,只要您编译并链接这两个文件,链接器就能够找到该函数。File2.cpp
.cpp
也就是说,最好将该函数声明移动到一个文件中,然后您可以在需要时使用该文件,例如:.h
#include
文件1.h
namespace cs{
void func();
}
文件1.cpp
#include "File1.h"
namespace cs{
void func(){
//dosomething
}
}
文件2.cpp
#include "File1.h"
class cx{
private:
void custom(){
cs::func();
}
}
评论
compiler-construction
cs::func
File2.cpp