我正在尝试在我的代码中包含来自《数字食谱》一书的头文件。我必须包含的头文件是 nr3.hpp 和 interp_1d.hpp。interp_1d
需要定义nr3
才能工作。
我将编写一些出现在 interp_1d.hpp 上的代码,以便您了解我正在处理 interp_1d 代码的内容:
struct Base_interp{
...
};
Int Base_interp::locate(const Doub x){
...
}
...
Doub BaryRat_interp::interp(Doub x){
...
}
此头文件中没有标头保护。结果,当我尝试在多个其他头文件中输入它时,我收到错误“66 个重复符号用于架构 x86_64”。
我的代码结构如下:
myPulse.hpp:
#include "nr3.hpp"
#include "interp_1d.hpp"
calc1.hpp:
#include "myPulse.hpp"
calc2.hpp:
#include "myPulse.hpp"
main.cpp:
#include "myPulse.hpp"
#include "calc1.hpp"
#include "calc2.hpp"
#include "nr3.hpp"
#include "interp_1d.hpp"
我不知道如何克服这个问题。我希望能够在不止一部分代码中使用 interp_1d.hpp 函数。我尝试包括头守卫,但这不起作用:
#ifndef Interp_1d
#define Interp_1d
#endif
有谁知道我如何在多个其他标头中使用 interp_1d 标头而不会发生此错误?