我正在做 C++ 编码。
从文件 f2.cpp 中,我需要调用在 f1.cpp 中定义但未在 f1.h 中删除的函数 f1()。
我不能通过在 f2.cpp 中包含 f1.h 来做到这一点。
我不想定义另一个做同样事情的函数,它是重复的。
如何解决这个问题呢 ?
谢谢
更新
阅读解决方案后,我将在 f1.h 中添加 f1() 的清除。
在 f1.h 中,它有
namespace name1{
namespace name2{
class class1{};
class class2{};
}
}
f1() 只是一个实用函数,不涉及 clas1 和 class2 的成员。
目前,f1() 是在 f1.cpp 中的命名空间(没有名称)中定义的。
namespace{
f1(){
}
}
但是,在 f1.h 中,它有一个命名空间定义 name1 和 name2。
我应该把 f1() 清除在 f1.h 哪里?
现在,我将 f1() 放入 f1.h 中的 name1::name2 并将 f1.h 包含在 f2.cpp 中,我得到链接错误:来自 f2() 的 undefiend name1::name2::f1()。
更新 如果我将 f1() 的声明放在任何命名空间之外的 f1.h 中,并且还包括来自 f2.cpp 的 f1.h,我得到链接错误:f2() 中 f1() 的未定义符号,为什么?
任何帮助将不胜感激 !