Pakiet programów do zdalnego nauczania Programowania Orientowanego Obiektowo
Dzisiaj jest
Środa, 18 Lipiec 2018
Zarejestrowanych użytkowników: 4
Dostępnych pytań testowych: 102
HOME
Strona tytułowa pracy dyplomowej
NAUKA
Materiały dydaktyczne związane z OOP
TESTY
Sprawdzenie poziomu zdobytej wiedzy
ZASOBY
Literatura i zasoby sieciowe o OOP
ŹRÓDŁA
Zbiór projektów dydaktycznych z OOP
KONTO
Możliwość śledzenia własnych postępów
INFO



Uzdatnianie kompozytów do współpracy z operatorami

Język C++ zapewnia możliwość przeładowywania operatorów dla większości operacji dokonywanych na klasach użytkownika. W przykładowym programie można pokusić się o zdefiniowanie dla klasy kompozytu opeatora << dodającego urządzenie do pierwszego wolnego portu, który można by wywoływać zamiast dłuższej metody dodajUrzadzenie (). Również operator [] mógłby posłużyć do odczytywania urządzeń z określonych portów.

Z przeładowaniem operatorów związane są pewne wymogi. Mianowicie – minimum jeden z parametrów operatora musi być obiektem lub referencją. Nie można zatem zdefiniować operatora, którego można by używać w następujący sposób (przy założeniu że zmienna kontroler jest wskaźnikiem):

kontroler << (new HubUSB(4)) << (new Klawiatura()) << (new Mysz());

Można zdefiniować jednak operator, którego klient może używać przez referencje

*kontroler 
		<< *(new HubUSB(4)) 
		<< *(new Klawiatura()) 
		<< *(new Mysz());

Analogicznie dla operatora[] nie można zbudować operatora tak, by móc napisać:

kontroler[0][0][3][0];

Zamiast tego można zdefiniować go tak, aby posłużyć się składnią

(*kontroler)[0][0][3][0];
Adamik Łukasz, Politechnika Śląska w Gliwicach (AEiI) - 2010/11