【发布时间】:2018-05-16 23:20:37
【问题描述】:
我在 Visual Studio 中遇到了无法解析的外部符号的问题。 我已经尝试了定义的所有组合,但我仍然收到消息
1>Exada.obj : error LNK2001: unresolved external symbol "public: static int (__cdecl** Exada::functions_array)(int)" (?functions_array@Exada@@2PAP6AHH@ZA)
我的头文件Exada.h中的声明是这样的
const int MAX_FUNCTIONS=179;
class Exada
{
public:
static int (*functions_array[MAX_FUNCTIONS + 2])(int);
…
};
Exada.cpp文件中的定义是
int (Exada:: *functions_array[MAX_FUNCTIONS + 2])(int) = { NULL,
&Exada::aporipteos_ar, //1
&Exada::aporipteos_ar, //2
&Exada::aporipteos_ar, //3
… Some address of functions
}
感谢您的帮助。提前致谢。
【问题讨论】:
-
请正确格式化您问题的代码块。
-
如果可能,为什么不使用
std::function。您的代码将更清晰,更易于阅读和调试。 -
类中的数组声明不适用于指向成员的指针。所以我不明白你为什么期望它们匹配。
-
我试过 static int (Exada::*functions_array[MAX_FUNCTIONS + 2])(int);但仍然有错误
标签: c++ visual-studio unresolved-external