Vill c++ kisHF

NagyHF

Már mindent tudunk, hogy meg tudjuk tervezni, és elkezdjük a megvalósítást is. Itt az idő!

File I/O.

Sokaknak szüksége lehet file-kezelésre a nagyházi elkészítésekor. Egy kódrészletekkel fűszerezett remek kis összefoglalót ad a C++.com.

Órai feladat

A 10. aut-os konzervből indulunk. Javítsuk a tesztelő hibáját: nem csak iostream kell, hanem cstdio is a printf miatt. Valósítsuk meg a tesztelő helyes működéséhez szükséges tagfüggvényeket egy megfelelő nevű .cpp file-ban. (Vigyázz, a headerben egy csomó felesleges tagfüggvény is deklarálva van, nem kell mindhez definíció!) Alapból kötelező az operator=, copy ctor (most nem is fog hívódni), dtor. Kivételesen — a const char* típuskonverziós operátor egyszerű megvalósíthatósága érdekében — alkalmazzunk redundáns tárolást. A két héttel ezelőtti string osztálytól eltérően, most a lezáró '\0' karaktert is tároljuk! Mindezt azért tesszük, mert így egyszerűen pData-t visszaadva megvalósítható a type cast. A megválaszolandó kérdések:
  1. A tesztelő egyes sorainak végrehajtása során mely függvények hívódnak? (töréspont minden függvénybe, aztán figyelni, megmagyarázni.)
  2. Az if utasításban szereplő összehasonlítás miért nem fordul le explicit típuskonverzió nélkül (str1=="szoveg")? Értelmezzük a compiler üzenetét! És ha nem lenne mindkét irányba típuskonverziónk? Próbáljuk ki!

10. Házi feladat.

Készítsünk egy adattaggal nem rendelkező ősosztályt (os), mely kötelezően előírja egy int cmp(const os&)const szabályos összehasonlító függvény (*), valamint egy void print()const kiíró megvalósítását valamennyi leszármazott számára. (Absztrakt, tisztán virtuális.) Gondoljuk át a destruktor dolgát is.
Származtassunk belőle különböző minimalista osztályokat (értsd: csak a fent specifikált, valamint a helyes működéshez elengedhetetlen tagfüggvényekkel), legalább: komplex (kplx) és szöveg (szo). Valósítsunk meg mindent, ami a helyes működéshez szükséges. Kivételesen a szövegnél a rendezési elv lehet a tárolt szöveg hossza. Komplexnél pl. az abszolút érték.

(*)Szabályos hasonlító függvény visszatérési értéke negatív, ha az első paraméter megelőzi a másodikat, zérus, ha a két paraméter azonos a sorbarendezés szempontjából, végül pozitív, ha első követi a másodikat egy megadott rendezési elv szerint.

1. feladat

A programban mi ne dobjunk kivételt, csak kapjuk el, ha valaki dob.

2. feladat

A programban mi ne dobjunk kivételt, csak kapjuk el, ha valaki dob.


Beadandó a fentiek szerint két könyvtárba rendezett két megoldás egy zip-ben.