Allora, ho una classe che, quando viene fatta la somma, restituisce il reference ad una nuova zona di memoria allocata con new (non si può fare in altro modo, perchè il tutto si basa su puntatori a classi base astratte, che non si possono passare per valore). Comunque, venendo al sodo, quando io effettuo un'assegnazione o inserisco il valore ottenuto in un'altra somma, non ci sono problemi, perchè posso "capire" che è un valore temporaneo ed eliminarlo. Il problema nasce quando ho una cosa di questo tipo.
(OggettoA + OggettoB).MetodoDellaClasse();
In questo modo in effetti l'oggetto temporaneo non viene assegnato, ma viene creato ed il suo metodo richiamato. A questo punto come posso fare in modo che quando faccio una cosa simile il sistema "capisca" che l'oggetto di cui si parla è temporaneo e liberi la memoria ad esso assegnata ?