Assim como em outras linguagens modernas, TLPP permite que uma aplicação estabeleça um comportamento particular para operações entre dois objetos. Isso significa que tendo dois objetos, obj1 e obj2, por exemplo, pode-se realizar operações do tipo: obj1 + obj2 obj1 - obj2 obj1 * obj2 obj1 / obj2 obj1 == obj2 Adicionalmente, também é possível oferecer uma string resultante quando um objeto for empregado em contexto textual, como, por exemplo, fazer um conout do objeto: conout(obj1).A sintaxe de sobrecarga reserva a palavra OPERATOR para esse propósito, sendo antecedida de ADD, SUB, MULT, DIV, COMPARE ou TOSTRING, naturalmente conduzindo à uma das sobrecargas mencionadas acima.Assim sendo, não é permitido que o nome do método seja iniciado com o prefixo "operator"Objetos em TLPP podem utilizar métodos polimórficos.
Por definição, todos os métodos em TLPP são do tipo virtual.
Métodos redefinidos na classe filha tem a capacidade de mudar o comportamento da implementação feita na classe pai.
A redefinição é simples. Basta que a classe filha tenha um método com o mesmo nome que está na classe pai.
Nesse caso, quando o método é chamado em qualquer lugar da hierarquia de classes, ele assume o comportamento definido pelo objeto efetivamente instanciado. |