使用Visual Studio 2015,我一直在尝试加载一个表,其中包含转换为弧度的度数的浮点值。由于MathFunctions类是静态的(静态函数),我试图初始化保留转换的弧度值的映射。但是当我在InitTables / Degree2Radians函数中引用地图时,我一直收到 LNK2001未解析的符号错误 - 请注意,header和cpp文件位于同一文件夹“Utilities”下的同一项目中
声明(MathFunctions.h)
#pragma once
#ifndef MATHFUNCTIONS_H
#define MATHFUNCTIONS_H
#define _USE_MATH_DEFINES
#include <math.h>
#include <map>
#include <fstream>
using namespace std;
namespace LookupTables
{
class MathFunctions
{
private:
static map<short, float>Degree2RadiansTable;
public:
static void InitTables();
static float Degree2Radians(short angleInDegrees);
};
}
#endif
虽然定义(MathFunctions.cpp)如下
namespace LookupTables
{
void MathFunctions::InitTables()
{
// Load degree2radians table
short degrees = 0;
float radians = 0;
ifstream infile("..\Tables\Degree2Radians.txt");
if (infile.good() && infile.is_open())
{
while (infile >> degrees && infile >>radians)
{
MathFunctions::Degree2RadiansTable.insert({ degrees,radians });
}
}
infile.close();
}
float MathFunctions::Degree2Radians(short angleInDegrees)
{
return MathFunctions::Degree2RadiansTable[angleInDegrees];
}
}
我不确定是什么问题。