2013-07-30 13 views
14

możemy zadeklarować funkcji takich jak to w C++:Czy możemy przeciążyć operatorów dla wbudowanych typów takich jak int lub float?

int operator + (int , int); 

Twoje odpowiedzi będą mile widziane!

Dzięki

+3

Nie można przeciążać operatorów dla wbudowanych typów. – juanchopanza

+0

Twoje ciało pytania wydaje się nie mieć nic wspólnego z tytułem. O co pytasz? – Dariusz

+0

Myślę, że argument musi być obiektami, jeśli możesz przeciążać typ int, wtedy ogólna operacja arytmetyczna będzie chaosem. –

Odpowiedz

10

Tak: Można przekazać ints i pływa w przeciążonych funkcji

Nie: nie można przeciążać/zastąpić operatorów dla zbudowany w typów gdy wbudowanych typów są po obu stronach wypowiedzi .

18

Nie można ponownie zdefiniować wbudowanego operatora. Przeciążenie operatora zostało zaprojektowane, aby umożliwić ci rozszerzenie języka, a nie zmianę go. Co najmniej jeden z parametrów przeciążonego operatora musi być typem zdefiniowanym przez użytkownika (typ klasy lub typ wyliczeniowy) lub referencją dla typu zdefiniowanego przez użytkownika.

+0

To ograniczenie w stosunku do ducha C++, aby nigdy nie uniemożliwić programistce strzelania sobie w stopę? – ibrahim5253

Powiązane problemy