C++ - operatory i przeciazenie
------------------------------

1. Kompilacja: wywolaj program `make'
2. Uzytkowanie: uruchamianie programow
3. Pliki:

# lista.h, lista.cpp [ dodano funkcje operatorowe ]
	Definicja klasy Lista.

# szulista.h, szulista.cpp [ dodano funkcje operatorowe ]
        Definicja klasy SzuLista.

# trwlista.h, trwlista.cpp [ dodano funkcje operatorowe ]
        Definicja klasy TrwLista.

# toglista.h, toglista.cpp [ dodano funkcje operatorowe ]
        Definicja klasy TogLista.

# intdiff.cpp [ zastosowano operatory zamiast zwyklych wywolan metod ]
	Program, ktory ma dwa argumenty bedace nazwami plikow.  Wypisuje te
	liczby, ktore znajduja sie w pierwszym pliku i nie znajduja sie 
	w drugim pliku.

4. Wazne rzeczy:

a) wszelkie funkcje (nie tylko operatory moga byc przeciazone).  Funkcja, ktora
  zostanie wywolana jest ustalana na podstawie liczby i typu argumentow.
  W C++ przy owym ustalaniu nie bierze sie pod uwage przekazywanego
  wyniku.
b) roznice miedzy przeciazeniem i poznym wiazaniem.
c) roznice miedzy przypisaniem i konstrukcja obiektu.
d) operatory nie musza byc metodami.
  Operatory >> i << zdefiniowane dla klasy TrwLista nie mogly byc zdefiniowane
  jako metody, gdyz pierwszym argumentem jest strumien.  Dlatego musielibysmy
  przedefiniowac biblioteke strumieni, co byloby trudne i niepozadane.
e) roznica miedzy deklaracja operatora przyrostkowego i przedrostkowego:
   A operator++();		// przedrostkowy, ++y;
   A operator++(int);		// przyrostkowy,  y++;	

5. Legenda:

! - nowy plik;
# - zmodyfikowano plik; opis modyfikacji znajduje sie za nazwami plikow.
