Operativsystem: .............................................................
Operativsystem: .............................................................
Operativsystem: .............................................................
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
I C# anvendes altid dette skema (skabelon) til at overloade en operator:<br />
public static int operator +(Rektangel nr1,Rektangel nr2){<br />
Metoden skal være static, den kan returnere ’hvad som helst’ (bool, int, string eller et objekt fx et<br />
nyt Rektangel objekt!), ordet ’operator’ skal angives foran operatoren som skal overloades.<br />
Disse metoder har altså typisk det format som er angivet i kode eksemplet.<br />
NB: det er muligt fuldstændigt at omdefinere de kendte operatorer i et C# program. Vi er vant til<br />
at 4+5 giver 9 men med operator overloading er det muligt at overloade + operatoren så at 4+5<br />
f.eks. giver strengen ”Bla bla bla!”!! Denne form for overloading er selvfølgelig ikke nogen speciel<br />
god ide!!<br />
Som det ses er det rimeligt nemt at konstruerer overloadede metoder til +, osv.<br />
Vigtigt er at afgøre om disse operatorer giver mening på en bestemt klasse. Det giver ikke megen<br />
mening fx at lægge to personer sammen – i al fald ikke på computeren! Hvis vi har et Hus objekt<br />
kan hus1 og hus2 måske adderes ved at deres arealer adderes. Men dette skal vurderes i det<br />
konkrete tilfælde.<br />
Operator overloading kan bruges til at sortere objekter.<br />
Opgaver:<br />
1. skriv kode til at 2 rektangler kan subtraheres således: r1 – r2<br />
2. skriv kode til at + operatoren returnerer et nyt Rektangel hvis areal er summen af to<br />
rektangler<br />
3. skriv en metode sorter() som sorterer et antal rektangler efter areal<br />
4. skriv en metode sorter() som sorterer et antal rektangler efter den længste side<br />
5. skriv en ny klasse Bil og find ud af hvordan man kan kode at bil1 er mindre end bil2! Du<br />
må her vælge en egenskab ved bilen som kan bruges som målestok