Código reescrito

Construtores, métodos constantes, funções inline adicionados. Falta
passagem por referência e atualizar diagrama UML