1 / 6

Överlagring av operatorer

2.78. 5.92. 3.14. +. =. 1. 3. 4. +. =. 1 + 2i. 2 + 3i. +. = ???. +. = ???. Överlagring av operatorer. fördefinierade datatyper (ej klasser):kompilatorn vet vad operatorerna betyder. Klass-objekt som vi designar: kompilatorn har ingen aning. 3 + 4i. ?. =. +. =. +.

twyla
Download Presentation

Överlagring av operatorer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2.78 5.92 3.14 + = 1 3 4 + = 1 + 2i 2 + 3i + = ??? + = ??? Överlagring av operatorer fördefinierade datatyper (ej klasser):kompilatorn vet vad operatorerna betyder Klass-objekt som vi designar: kompilatorn har ingen aning 3 + 4i CD5250 OOP med C++ Mats Medin MDH/IDT

  2. ? = + = + Överlagring av operatorer forts För klasser vi tillverkar bestämmer vi • vilka operatorer som ska tillåtas och • vad de betyder De bör betyda något som användaren lätt förstår List::operator+ Bil::operator+ CD5250 OOP med C++ Mats Medin MDH/IDT

  3. Överlagring av operatorer forts Det är språkets fördefinierade operatorer vi kan överlagra • inte riktigt alla men nästan, se boken s 306 • Vi kan inte ändra deras precedensordning • Vi kan inte ändra antalet operander de tar Vi kan inte heller definiera nya operatorer för de fördefinierade datatyperna i språket CD5250 OOP med C++ Mats Medin MDH/IDT

  4. + = Överlagring av operatorer exempel List myList theList operator+ List::operator+(const List &andraListan) { List sjalv_kopia, kompis_kopia, resultat; sjalv _kopia = kopiera (theList); //privat hjälprutin kompis_kopia = kopiera(andraListan.theList); resultat = konkatenera(sjalv _kopia, kompis_kopia); return resultatet; } • tabell överlagringsbara operatorer i boken s 745 • Det är faktiskt skiftoperatorer man skriver ut resp läser in med newList = myList + otherList; CD5250 OOP med C++ Mats Medin MDH/IDT

  5. = + = + Överlagring av operatorer forts Det är helt OK att ha olika typer till operatorn: • Naturlig • Listan vet vad element är List::operator+(Elem &e); • Mindre naturlig • Vet element-klassen vad en lista är? Elem::operator+(List&l); CD5250 OOP med C++ Mats Medin MDH/IDT

  6. Kom ihåg: Objektet självt (*this) är den vänstra operanden mittObj + annatObj undantag: unära operatorer -mittObj CD5250 OOP med C++ Mats Medin MDH/IDT

More Related