• Почему не работает dynamic_cast?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Определение функции шаблона должно быть inline в .h файле (вставьте код из code.cpp в code.h).

    Ну, или в code.cpp файле добавьте куда-то строку
    findViewById<WEngine::TextView*>;

    Это все потому, что в C++ архаичная система хедеров. Когда компилится main.cpp, он не видит определения метода, только декларацию из code.h. Когда компилится code.cpp, он не знает, что main понадобится инстанциирование шаблона с каким-то типом. Поэтому не создает его. А потом линкер уже ругается, что не может найти функцию.
    Ответ написан
    Комментировать