Referencia no resuelta al constructor que se define [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Qué es un error de símbolo externo de referencia indefinido / no resuelto y cómo lo soluciono? 32 respuestas

Estoy obteniendo ununresolved external symbol "public: __thiscall TestLanguage::TestLanguage(void)" (??0TestLanguage@@QAE@XZ) referenced in function _main

losTestLanguage El constructor está definido hasta donde puedo ver, sin embargo, obviamente, el compilador no puede verlo. Mi única conclusión es que hay algún tipo de problemas de inclusión (por ejemplo, circular incluye).

He hecho un diagrama de las inclusiones para cada unidad de traducción a continuación, sin embargo, no puedo ver ningún problema. Cualquier orientación sería apreciada.

Incluye:

Test.cpp
    Expression.h
        Operation.h
        Token.h
    CPU.h
        Operation.h
    TestLanguage.h
        ILanguage.h
        TLOperators.h
            IOperator.h
                Operation.h
                Token.h

TestLanguage.cpp
    TestLanguage.h
        ILanguage.h
        TLOperators.h
            IOperator.h
                Operation.h
                Token.h

TLOperators.cpp
    TLOperators.h
        IOperator.h
            Operation.h
            Token.h
    Expression.h
        Operation.h
        Token.h
    CPU.h
        Operation.h

CPU.cpp
    CPU.h
        Operation.h
    Operation.h

Expression.cpp
    Expression.h
        Operation.h
        Token.h
    Util.h
    IOperator.h
        Operation.h
        Token.h
    CPU.h
        Operation.h
    ILanguage.h

Operation.cpp
    Operation.h

Token.cpp
    Token.h