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 A partir da versão 19.3.1.0 será possível sobrecarregar operadores. Isso é na definição da sua classe você poderá sobrecarregar o comportamento da Soma (ADD), da Subtração (SUB), da Multiplicação (MULT), da Divisão (DIV), da Comparação (COMPARE) e da Conversão para String (TOSTRING). Não é permitido declarar operadores que não sejam os citados acima, ou seja, os tokens add, sub, mult, div, compare e tostring fazem parte da linguagem e só eles poderão ser utilizados. Não é permitido declarar métodos cujo nome inicie com "operator". |