2013-07-30 12 views
14

Possiamo dichiarare una funzione come questa in C++:Possiamo sovraccaricare gli operatori per i tipi built-in come int o float?

int operator + (int , int); 

Le vostre risposte saranno apprezzati!

Grazie

+3

Non è possibile sovraccaricare gli operatori per i tipi integrati. – juanchopanza

+0

Il corpo delle domande sembra non avere nulla a che fare con il titolo. Cosa stai chiedendo? – Dariusz

+0

penso che l'argomento debba essere object, se ti è permesso di sovraccaricare il tipo int l'operazione aritmetica generale sarà un caos –

risposta

10

Sì: È possibile passare interi e galleggianti in funzioni sovraccaricate

No: non è possibile sovraccaricare/sovrascrivere gli operatori per la costruzione tipi, quando il tipi built-in sono su entrambi i lati l'espressione .

18

Non è possibile ridefinire un operatore integrato. L'overloading dell'operatore è progettato per consentire all'utente di estendere la lingua, non per modificare . Almeno uno dei parametri di un operatore sovraccarico deve essere un tipo definito dall'utente (classe o tipo enum) o un riferimento a un tipo definito dall'utente.

+0

È questa restrizione contro lo spirito del C++ non impedire mai a un programmatore di spararsi al piede? – ibrahim5253