标题可能不清楚,但代码很简单,应该自行解释。我想在类中为我的类键入一个构造函数,然后在其他地方设置所述构造函数的地址。
class Dog {
public:
typedef Dog* (__thiscall* Constructor_T)(Dog* thisptr);
static Constructor_T Constructor;
Dog() {
Constructor(this);
}
};
void SetDogConstructor() {
Dog::Constructor = (Dog::Constructor_T)0x1234;
}
我收到的错误是:
Error 2 error LNK2001: unresolved external symbol "public: static class Dog * (__thiscall* Dog::Constructor)(class Dog *)" (?Constructor@Dog@@2P6EPAV1@PAV1@@ZA)
答案 0 :(得分:1)
静态成员需要在类外部定义。在你的情况下,你会把
Dog::Constructor_T Dog::Constructor = nullptr;
在Dog.cpp。