печально быть антисоциальным - overloading -> aizstāšana, aizsegšana un operatoru definēšana

Mar. 6th, 2007

09:24 pm - overloading -> aizstāšana, aizsegšana un operatoru definēšana

Previous Entry Add to Memories Tell A Friend Next Entry
(12 comments | Leave a comment)

Comments:

[User Picture]
From:[info]misame
Date:March 6th, 2007 - 09:36 pm
(Link)
taisnība jau Tev ir. Kamēr nebiju ieraudzījis watt viedokli, bija pilnīgi piemirsies par C++/C#/jaunā vb.net iespēju pārlādēt operatorus... tātad jāmācās katrā valodā pa savam.
vēl jautājums, ar ko tad operators ir sliktāks par divargumentu metodi? ;-)
(Reply to this) (Thread)
[User Picture]
From:[info]smejmoon
Date:March 6th, 2007 - 09:42 pm
(Link)
nu ir jau binārie un ternārie un pat unārie operātori:

a += b; a = b + c; !a; +a; -a;
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]misame
Date:March 6th, 2007 - 09:47 pm
(Link)
par pirmo man ir aizdomas, ka tas ir sinonīms a=a+b, ko arī kompilators aši pārveido.
Otrais ir tas, ko es biju domājis... pārējie gan tiešām ir unāri operatori. Jautājums, vai C++ ļauj pārlādēt unāro "+"?
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]smejmoon
Date:March 6th, 2007 - 09:47 pm
(Link)
nezinu vai ļauj pārlādēt, bet operators tas ir ;)
(Reply to this) (Parent)
[User Picture]
From:[info]kemune
Date:March 6th, 2007 - 10:32 pm
(Link)
ļauj. es tikai neesmu pārliecināts par a ? b : c pārlādēšanu, bet, piemēram, komats C++ arī ir binārs operators, kurš vienmēr atgriež labo vērtību, ja nemaldos
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]kemune
Date:March 6th, 2007 - 10:35 pm
(Link)
viens pazīstams maniaks ļoti aizrāvās ar operatoru pārlādēšanu, it sevišķi viņam patika pārlādēt () operatoru. principā mierīgi savu valodu vari radīt, līdzīgi kā ar makrosiem C (tipa obfuscated C contest)
(Reply to this) (Parent)
[User Picture]
From:[info]smejmoon
Date:March 6th, 2007 - 09:47 pm
(Link)
ā, un a = b + c iekš c++ sastāv no diviem operatoriem:

StarprezultaataTips operators + (Btips b, Ctips c);
Atips operators = (StarprezultaataTips s);

excuse moi French.
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]kemune
Date:March 6th, 2007 - 10:34 pm
(Link)
pie tam var definēt divos veidos:

1) C stilā kā funkciju:
StarprezultaataTips operators + (Btips b, Ctips c);

2) C++ stilā kā klases memberi:
StarprezultaataTips Btips::operators + (Ctips c);
(Reply to this) (Parent)