-1
Название может быть неясным, но код прост и должен объяснить сам. Я хотел бы напечатать конструктор для моего класса внутри класса и затем задать адрес указанного конструктора в другом месте.Как typedef конструктор класса внутри определения класса
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 *)" ([email protected]@@[email protected]@@ZA)
Возможный дубликат [Статический конструктор в C++] (http://stackoverflow.com/questions/5803953/static-constructor-in-c) –
Вы не можете «typedef a constructor». Конструктор - это функция. Тип - это тип. –