如何在类定义中键入一个类构造函数

时间:2015-05-30 02:56:02

标签: c++

标题可能不清楚,但代码很简单,应该自行解释。我想在类中为我的类键入一个构造函数,然后在其他地方设置所述构造函数的地址。

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)

1 个答案:

答案 0 :(得分:1)

静态成员需要在类外部定义。在你的情况下,你会把

Dog::Constructor_T Dog::Constructor = nullptr;

在Dog.cpp。