26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!