1 / 10

C++ programozási nyelv Gyakorlat - 5. hét

Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október. C++ programozási nyelv Gyakorlat - 5. hét. Tartalomjegyzék. Függvénynevek túlterhelése A függvények szignatúrája (aláírása) Szignatúra és túlterhelés Paraméterátadás (parameteratadas.dsw)

skah
Download Presentation

C++ programozási nyelv Gyakorlat - 5. hét

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. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október C++ programozási nyelvGyakorlat - 5. hét

  2. Tartalomjegyzék • Függvénynevek túlterhelése • A függvények szignatúrája (aláírása) • Szignatúra és túlterhelés • Paraméterátadás (parameteratadas.dsw) • Változók hatóköre • Globális változók • Osztályszintű adattagok • Public és private hozzáférési módok

  3. Függvénynevek túlterhelése • Nem felüldefiniálás, hanem túlterhelés • felüldefiniálásról majd a leszármazott osztályoknál fogunk beszélni • Általában különböző feladatokat ellátó függvényeknek eltérő neveket adunk. • Mi történjen akkor, ha több függvény ugyanazt a feladatot látja el kis eltéréssel. Például azonos műveletet lát el különböző típusú adatokon. • C-ben: int IntHasonlit(int Par1, int Par2); int DblHasonlit(double Par1, double Par2); • C++-ban: int Hasonlit(int Par1, int Par2); int Hasonlit(double Par1, double Par2);

  4. A függvények szignatúrája (aláírása) • A függvények szignatúrája (aláírása) • C esetében: • a függvény neve • C++ esetében: • a függvény neve • a függvény paramétereinek száma • a függvény paramétereinek típusa • A függvény visszatérési értéke nem része a szignatúrának!!! • Miért?

  5. Szignatúra és túlterhelés • Ha a szignatúrát tekintjük a függvény azonosítójának, akkor a túlterhelés nem jelent semmi különlegeset. • Azonos névtérben nem lehet két azonos szignatúrájú függvény • C esetében nem lehet két azonos nevű függvény • C++ esetében elég, ha a paraméterlistájukban eltérnek. • Hol láttuk ezt a jelenséget az elmúlt hetekben? • Konstruktorok túlterhelése • Lehet-e túlterhelni a destruktorokat? Miért?

  6. Paraméterátadás (parameteratadas.dsw) • Nézzük meg a példát! • Mit fog kiírni? • Mi a különbség a kétféle paraméterátadási mód között? • érték szerint • referencia szerint • Mikor használjuk a referencia szerint paraméterátadást? • azt akarjuk, hogy a függvény módosítsa az értékét • veszélyes, kerülendő • nagy méretű paraméterek esetén • hely és idő takarékosság céljából • írhatunk elé const-ot, akkor nem módosítható • void fv( const NagyOsztaly& par );

  7. Változók hatóköre • Deklarálunk egy változót • Mi a hatóköre ennek a változónak? • A deklaráció pontjától • A deklarációt tartalmazó blokk végéig • ha minden blokkon kívül deklarálunk egy változót, akkor a fájl végéig (globális változó) • Példák • Mi történik akkor, ha két azonos nevű változó hatóköre átfedi egymást? • Példák

  8. Globális változók • Mit nevezünk globális változónak? • Hol látszik egy globális változó? • Miért veszélyes ez? • Mikor használnánk mégis globális változót? • egy függvény két lefutása között is megmarad • Helyette használhatunk static változót • Példa static változóra

  9. Osztályszintű adattagok • Az osztályhoz tartozik, nem a példányokhoz • Csak egy példányban létezik, minden példányból ugyanazt érjük el • Példányok létrejötte előtt is létezik • Példa: osztalytag.dsw • Példa: osztalytag2.dsw

  10. Public és private hozzáférési módok • Ismétlés • Példák

More Related