17. fejezet: Osztályok (Classes)

Az osztályok az adatszerkezetek egy kibővített fogalmát jelentik, ugyanis nem csupán adatszerkezeteket lehet bennük tárolni, hanem függvényeket is.

Az objektum (object) az osztály (class) egy lehetséges segítsége. Ha egy változó szempontjából tekintjük, akkor az osztály lenne a típus (type) és az objektum (object) lenne a változó. Az osztályokat általában kulcsszavak segítségével képezzük a következő formula alapján:

 

class osztály_név {

  hozzáférés_megadás_1:

    tag1;

  hozzáférés_megadás_2:

    tag2;

  ...

  } objektum_neve;

 

Itt az osztály_név egy érvényes azonosító az osztályban, az objektum_neve ezen osztályban választható nevek (nem kötelezően adott) listája. Az osztály-deklaráció lényege tartalmazza az egyes elemeket, amik egyaránt lehetnek adatok és függvények, esetleg speciális hozzáférési megadások.

 

Mindez nagyon hasonló az adatstruktúrák deklarációjához, kivéve, hogy ezúttal beépíthetünk függvényeket és elemeket, de ezeket speciális hozzáférésű megoldásoknak (megadásoknak) hívjuk. A hozzáférés megadása három fajta lehet: magán (private), nyilvános (public) és védett (protected). Ezek az hozzáférési jogosultságok módosítják az alapvető hozzáféréseket is. Alapértelmezés szerint egy osztály (class) minden tagja a class kulcsszóval való deklarálás miatt nyilvános (public) hozzáféréssel rendelkezik. Például:

class CRectangle {

    int x, y;

  public:

    void set_values (int,int);

    int area (void);

  } rect;

 

Itt a CRectangle osztály deklarál egy objektumot, melyet rect-nek hívunk. Ezen osztálynak négy tagja van: két int típusú számadat (x és y) saját hozzáféréssel (private access) - mivel a privát az alapértelmezett jogosultsági szint; továbbá tartalmaz két függvényt is nyilvános hozzáféréssel set_values() és area() néven, amelyekből most még csak a deklarálásuk látható, nem pedig a teljes definíciójuk.

Figyeljük meg a különbséget az osztály (class) és az objektum (object) neve között: az előző példában a CRectangle volt az osztály (class) neve, míg a rect egy CRectangle típusú objektum neve volt. Ez teljesen megfelel a következő mintának is:

    int aaaa;

Itt az int a típus neve (mint egy osztályé) és az aaaa a változó neve (mint egy osztálybeli objektumé).

A fenti deklaráció után simán használhatjuk is a függvényeket, persze előtte meg kell írnunk azokat! Például:

            rect.set_values(3,4);   //Itt használtuk a függvényt.

     myarea = rect.area();   //Itt meg a másikat.

 

Következzen most egy teljes példa a fenti class-deklarációval:

 

---------------------------------------------

// Osztályok példa

#include <iostream>

using namespace std;

 

class CRectangle {

    int x, y;

  public:

    void set_values (int,int);

    int area () {return (x*y);}

};

 

void CRectangle::set_values (int a, int b) {

  x = a;

  y = b;

}

 

int main () {

  CRectangle rect;

  rect.set_values (3,4);

  cout << "area: " << rect.area();

  return 0;

}

---------------------------------------------

 

A fenti kód legfontosabb új eleme a két darab kettőspont (::), ami a set_values() deklarációjában található. Arra használják, hogy meghatározza egy osztály tagját egy külső definíció számára. Továbbá észre lehetett venni, hogy az area() függvény teljes egésze bekerült a CRectangle osztály definíciójába azon egyszerű okból, hogy a set_values() csak a prototípusát adta meg az osztályon belül, de ez a meghatározás azon kívül is érvényes. Ebben a külső definícióban fel kell használnunk a :: szűrő hatályát is, mivel egy olyan függvényt szeretnénk definiálni, ami a CRectangle osztály tagja és nem globális függvény.

 

A következő példában bonyolítsuk kissé az előző kódot úgy, hogy most egy osztályunk és két objektumunk legyen.

---------------------------------------------

// Egy osztály két objektum

#include <iostream>

using namespace std;

 

class CRectangle {

    int x, y;

  public:

    void set_values (int,int);

    int area () {return (x*y);}

};

 

void CRectangle::set_values (int a, int b) {

  x = a;

  y = b;

}

 

int main () {

  CRectangle rect, rectb;

  rect.set_values (3,4);

  rectb.set_values (5,6);

  cout << "rect area: " << rect.area() << endl;

  cout << "rectb area: " << rectb.area() << endl;

  return 0;

}

---------------------------------------------

 

Ebben a konkrét esetben az osztály még mindig a CRectangle, melynek két objektuma van: rect és rectb. a main() függvényben először is deklaráljuk őket, majd értéket adunk nekik, végül kiíratjuk a területüket. Lényeges megjegyezni, hogy a rect.area() nem ad azonos értéket a rectb.area()-val, mert különbözőek a bemeneti értékeik.

Ez az objektum-orientált programozás alapvető koncepciója: az adatok és a függvények egyazon objektum (jelen esetben osztály) tagjai. Ezen túl nem kell használnunk globális változókat, hogy átadjuk egyik függvénytől a másiknak a megfelelő értéket, hanem tárgyakat és eseményeket kezelünk, amelyek saját adatokkal és beépített függvényekkel rendelkeznek. Figyeljük meg, hogy nem kellett semmilyen paramétert megadni a rect.area() és a rectb.area() hívásakor.

 

18. fejezet: Numerikus könyvtár (cmath)

 

A nyelv alapjainak nagyjából a végére értünk, így most már jöhetnek az olyan „apróságok”, mint az egyes könyvtárak. Szeretném felhívni a figyelmet arra, hogy ezen függvények többsége nem feltétlenül kell a mindennapi munkához, viszont nagyon fontos, hogy mindig hozzáférhetőek legyenek. Továbbá az emelt szintű érettségi feladatsoraiban gyakori, hogy a következő függvények közül kell használni ezt-azt; tovább nem szabad elfelejteni azt sem, hogy ezen a vizsgán az internetet szigorúan tilos használni és magam részéről nem vagyok 100%-osan meggyőződve, hogy a programok beépített helpjei mindig működőképesek...

 

A C++ nyelv rengeteg beépített függvényt és eljárást tartalmaz, melyekből eddig csak párat láthattunk. Most mindezt kicsit részletesebben fogjuk tárgyalni!

Ennek első darabja a cmath könyvtár, amely gyakori matematikai műveleteket és eljárásokat tartalmaz. File: math.h

(Előzőleg ebből a függvénysorból a 12. fejezetben láthattuk példákat!)

 

Trigonometrikus függvények:

cos                  cosinusz

sin                   sinusz

tan                   tangens

acos     arcus cosinusz

asin      arcus sinusz

atan     arcus tangens

atan2   arcus tangens két paraméterrel (radiánban, kér koordinátával adja vissza a -pi +pi értékek között)

 

Hiperbolikus függvények:

cosh     cosinusz hiperbolikusz

sinh     sinusz hiperbolikusz

tanh     tangens hiperbolikusz

 

Exponenciális és logaritmikus függvények:

exp                  Exponenciális (e hatványa), ahol e=2,71828.

frexp    Egy hatványt felbont valós szorzóra és 2 egész kitevőjű hatványára.

ldexp   Előzőhöz hasonló, csak eltérő lehetőségekkel

log                   Egy szám természetes (azaz e-alapú) logaritmusát adja meg.

log10   10-alapú logaritmus.

modf    Egy szám felbontása egész és törtrészre.

 

Hatvány-függvények:

pow                 Egy szám hatványa (Paraméterek: alap,kitevő)

sqrt      Négyzetgyök

 

Vegyes függvények:

ceil      A legkisebb egész szám, ami nem kisebb, mint a paraméter.

fabs     Abszolút érték

floor    A legnagyobb egész szám, ami nem nagyobb, mint a paraméter.

fmod    Osztási maradék

 

Egyetlen példa a könyvtár helyes használatára:

---------------------------------------------

// Szinusz-példa

#include <iostream>

#include <math.h>

using namespace std;

 

#define PI 3.14159265

 

int main ()

{

  long double i=0, j;

  do

       {

       j = sin(i*PI/180);

       cout <<"\n sin(" <<i <<")= " <<j;

       i += 5;

       }

  while (i<361);

  return 0;

}

---------------------------------------------

 

 

19. fejezet: Input/Output műveletek könyvtára (cstdio)

 

(Eredeti verzió: http://cplusplus.com/reference/clibrary/cstdio/ Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)

A kimeneti/bemeneti műveletek talán az egyik leglényegesebb részei a C++ nyelvnek. (Angolul: C Standard Input and Output Library) Ezen könyvtár tartalmazza az alapvető műveleteket a billentyűzettel, a nyomtatóval és egyéb a rendszer által támogatott terminálokkal. A műveletekre létezik egy egységes szabvány, amely általában jól is használható, de azért léteznek kivételek. A file-műveletek számára három alapvető folyamat létezik: stdin, stdout és stderr; ezek automatikusan létrejönnek és nyitottak minden olyan program számára, amely a könyvtárat használja.

A file-műveletek számára vannak alapvető lehetőségek, melyek a következők:

Read/Write Access - írási/olvasási jog

Test/Binary       - szöveges/bináris mód

Buffer                           - puffer

 

Mutatóból is három van, melyek a következők:

Error indicator       - hiba-mutató

End-Of-File indicator - file vége mutató

Position indicator    - pozíció mutató

 

Ezek után jöjjenek a függvények:

File-műveletek:

remove                        File törlése

rename            File átnevezése

tmpfile             Ideiglenes file megnyitása

tmpnam                       Ideiglenes file létrehozása

 

Egyetlen példát szeretnék erre mutatni, íme:

---------------------------------------------

// File törlése 

// Törlendő file: ideiglenes.txt

#include <stdio.h>

int main ()

{

  if( remove( "ideiglenes.txt" ) != 0 )

    perror( "Hiba a file törlésekor." );

  else

    puts( "File sikeresen törölve." );

  return 0;

}

---------------------------------------------

(Megjegyzés: futtatás előtt nem árt létrehozni az ideiglenes.txt file-t a megfelelő könyvtárban!)

 

 

File hozzáférés:

fclose   File bezárása

fflush   Adatfolyam kiürítése (flush stream)

fopen   File megnyitása

freopen            Adatfolyam újranyitása más file-lal vagy más módszerrel

setbuf  Adatfolyam mutató beállítása

setvbuf       Változtass az adatfolyam tárolóján

 

Kimenet/bemenet formázása:

fprintf              Írj formázott kimenetet az adatfolyamhoz - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fprintf/

fscanf      Olvass formázott adatokat az adatfolyamból - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fscanf/

printf               Írj formázott adatot az stdout-ra - Részletek: http://cplusplus.com/reference/clibrary/cstdio/printf/

scanf               Olvass formázott adatot az stdin-ről - Részletek: http://cplusplus.com/reference/clibrary/cstdio/scanf/

sprintf              Írj formázott adatot a string-be - Részletek: http://cplusplus.com/reference/clibrary/cstdio/sprintf/

sscanf              Olvass formázott adatokat a stringből - Részletek: http://cplusplus.com/reference/clibrary/cstdio/sscanf/

vfprintf            Írj formázott változó paraméterlistát a kimenetre - Részletek: http://cplusplus.com/reference/clibrary/cstdio/vfprintf/

vprintf             Írj formázott változó paraméterlistát az stdout-ra - Részletek: http://cplusplus.com/reference/clibrary/cstdio/vprintf/

vsprintf            Írj formázott változó paraméterlistát a stringbe - Részletek: http://cplusplus.com/reference/clibrary/cstdio/vsprintf/

 

Karakterek kimenete/bemenete:

fgetc    Karakter lehívása az adatfolyamból

fgets    String lehívása az adatfolyamból - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fgets/

fputc    Karakter írása az adatfolyamba

fputs    String írása az adatfolyamba

getc     Karakter hívása az adatfolyamból

getchar Karakter hívása az stdin-ből

gets      String hívása az stdin-ből

putc     Karakter írása az adatfolyamba

putchar            Karakter írása az stdin-be

puts     Karakter írása az stdout-ba

ungetc Egy karakter kinyerése az adatfolyamból(?) - Részletek: http://cplusplus.com/reference/clibrary/cstdio/ungetc/

 

Csak egyetlen példa a gets-re:

---------------------------------------------

//gets példa

#include <stdio.h>

int main()

{

  char stringa [256];

  char stringb [256];

  printf ("Kerem a teljes nevet: ");

  gets (stringa);

  printf ("Kerem a lakcimet: ");

  gets (stringb);

  printf ("Teljes neve: %s\n",stringa);

  printf ("Lakcime: %s\n", stringb);

  return 0;

}

---------------------------------------------

 

Direkt kimenet/bemenet:

fread    Adatblokk olvasása az adatfolyamból

fwrite   Adatblokk írása az adatfolyamba - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fwrite/

 

File pozicionálás:

fgetpos Az adatfolyamon belüli pozíció megadása - Részletek: http://cplusplus.com/reference/clibrary/cstdio/fgetpos/

fseek    Az adatfolyam helyzetjelző áthelyezése

fsetpos Az adatfolyam pozíciójelzőjének megadása

ftell      Az adatfolyamon belüli pozíció megadása

rewind Az adatfolyam pozíciójelzőjének áthelyezése a legelejére

 

Hibakezelés:

clearerr            Hibamutatók törlése - Részletek: http://cplusplus.com/reference/clibrary/cstdio/clearerr/

feof                 A file-vége mutató ellenőrzése

ferror               A hibamutató ellenőrzése

perror              Hibaüzenet kiírása

 

Fontosabb makrók:  (valamennyi konstans)

EOF                                       File vége

FILENAME_MAX   A file-név maximális hossza

NULL                        Null-mutató

TMP_MAX                           Az ideiglenes file-ok száma

 

Típusok:

FILE   Az objektum tartalmaz információt az adatfolyam kontrolljáról

fpos_t  Az objektum tartalmaz információt a file-on belüli pozicionáláshoz

size_t   Előjel nélküli egész típus

 

 

 

20. fejezet: String műveletek könyvtára (cstring)

(Eredeti verzió: http://cplusplus.com/reference/clibrary/cstring Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)

 

Az előző cstdio-hoz képest ez egy kisebb könyvtár, jóval kevesebb, ám annál fontosabb függvénnyel. Az emelt szintű informatika érettségin előszeretettel adnak szövegfeldolgozási feladatot! Használatához a következő sor kell:

            #include <string.h>

           

Másolások:

memcpy          Memóriablokk másolása                                                        // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memcpy/

memmove       Memóriablokk mozgatása                                                     // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memmove/

strcpy  String másolása                                                                                 // Példa: strcpy (char célfile, const char forrásfile);

strncpy A stringben lévő karakterek másolása            // Példa: strncpy (char célfile, const char forrásfile, másolandó_karakterek_száma);

 

Összefűzés:

strcat    Stringek összefűzése                                                  // Példa: strcat (char célfile, const char forrásfile);

strncat  A forrásfile első néhány karakterét hozzáfűzi a célfile-hoz. // Példa: strncat (char célfile, char forrásfile,  másolandó_karakterek_száma);

 

Összehasonlítás:

memcmp         Két memóriablokk összehasonlítása              // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memcmp/

strcmp Két string összehasonlítása                                        // Példa: strcmp(char file1, char file2);

Nullát ad vissza, ha a két string azonos. Pozitív egészet ("n"), ha a file1 n. karaktere nagyobb, mint a file2-é. Negatív egészet, ha ez fordítva valósul meg.

strcoll  Két string speciális összehasonlítása // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strcoll/

strncmp           Két string karaktereinek összehasonlítása // Példa: strncmp (char file1, char file2, összehasonlítándó_karakterek_száma);

strxfrm String speciális átformázása                           // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strxfrm/

 

Keresés:

memchr           Karakter keresése a memóriablokkban          // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memchr/

strchr   Karakter első előfordulása a stringben           // Példa: strchr (char miben_keres, char mit_is_keres);

strcspn Az adott stringben megkeresi a célhalmaz legelső előfordulását. // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strcspn/

strpbrk Karakterek keresése a stringben                                // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strpbrk/

strrchr  Karakter utolsó előfordulása a stringben// Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strrchr/

strspn   Azon karakterek számát add vissza, amelyek előfordulnak a célfile-ban. //Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strspn/

strstr    Al-string behelyettesítése                                           // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strstr/

strtok   Szöveg szavakra vágása                                                        // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strtok/

 

Egyebek:

memset            Töltsd ki a memóriablokkot                                      // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/memset/

strerror A hibakód mutatóját adja vissza                     // Mintapélda: http://cplusplus.com/reference/clibrary/cstring/strerror/

strlen   A string hosszát adja vissza                            // Példa: strlen (char minek_a_hossza);

 

Apró ötletek:

Direkt konverzió int és char között:

char c = 'a';

int code = (int)c; // Ez egész szám lesz.

c =(char)99;       // Ez karakter lesz.

 

Kivágás a szövegből és szöveg hossza:

string szoveg="1234567890 Ez egy mintaszoveg!";

cout << szoveg  <<" hossza: " <<szoveg.length() <<"\n";

cout <<"5-7. betu:i: " << szoveg.substr(4,3) <<"\n";

 

Lássunk itt egy teljes példát!

---------------------------------------------

using namespace std;

#include <stdio.h>

#include <iostream>

int main()

{

    char szavak [256];

    printf("\nSzo:veget kerek begepelni!");

    gets(szavak);

    cout << szavak  <<"\n";              // Így a teljes szöveget kiírja tutira

    cout <<"5-7. betu:i: " << szavak[4] <<szavak[5] <<szavak[6] <<"\n";

}

---------------------------------------------

 

 

 

 

 

21. fejezet: Dátum/idő műveletek könyvtára (ctime)

(Eredeti verzió: http://cplusplus.com/reference/clibrary/ctime Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)

Az előzőekhez képest ez egy elég kicsi könyvtár, pár fontos függvénnyel. Használatához a következő sor kell:

     #include <time.h>

 

Idő manipulációja:

clock               Óraprogram                                                                                                    // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/clock/

difftime           Visszaadja a különbséget két függvény között  // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/difftime/

mktime                        A tm struktúrát átalakítja time_t struktúrává // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/mktime/

time                 Visszaadja a pontos időt

 

A fenti négy függvény elég egyszerű, lássunk erre egy példát:

---------------------------------------------

// Idő példa

#include <stdio.h>

#include <time.h>

int main ()

{

  time_t seconds;

  seconds = time (NULL);

  printf ("1970 januar 1-tol: %ld ora telt el.\n", seconds/3600);

  printf ("Ez %ld napnak felel meg.\n", seconds/(3600*24));

  printf ("Ami %ld ev.\n", seconds/(3600*24*365));

  return 0;

}

---------------------------------------------

Ez a C++ egyik alapelemét, az 1970. január 1. óra eltelt időt adja vissza, ezúttal órákban, napokban, illetve években.

 

Konverzió:

asctime                        A tm struktúrát átalakítja string-gé                 // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/asctime/

ctime               A time_t struktúrát átalakítja string-gé            // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/ctime/

A visszatérő formátum a következő: Hét_napja Hónap Nap óra:perc:mp év  (angolul: Www Mmm dd hh:mm:ss yyyy)

gmtime                        A time_t struktúrát alakítja UTL-vé                           // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/gmtime/

localtime         A time_t struktúrát alakítja át helyi idővé // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/localtime/

strftime            Az időt átformázza stringgé                                       // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/strftime/

            Itt érdemes megnézni a belső táblázatot!

 

Makrók:

CLOCKS_PER_SEC            Másodpercenkénti ütések

NULL                        Null-pointer

 

Típusok:

clock_t                        Óratípus                      // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/clock_t/

size_t                          Előjel nélküli egész

time_t                          Idő-típus                     // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/time_t/

struct tm                      Idő-struktúra   // Mintapélda: http://cplusplus.com/reference/clibrary/ctime/tm/

            Itt érdemes megnézni a belső táblázatot!

 

 

22. fejezet: Többcélú műveleti könyvtár (cstdlib)

(Eredeti verzió: http://cplusplus.com/reference/clibrary/cstdlib Pár helyre tettem az angol megfelelőre mutatást. A többi értelemszerű!)

 

Egy újabb könyvtár vegyes többcélú függvényekkel. Használatához a következő sor kell:

            #include <stdlib.h>

 

String konverziók:

atof                  String átalakítása double-re                            // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atof/

atoi                  String átalakítása integerré (egésszé)  // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atoi/

atol                  String átalakítása long integerré                     // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atol/

strtod               String precízebb átalakítása double-re (valósra)         // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/strtod/

strtol                String precízebb átalakítása long integerré                            // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/strtol/

strtoul              String precízebb átalakítása előjel nélküli egésszé // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/strtoul/

 

Álvéletlen generálás:

rand                 Készíts álvéletlen számot                                           // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/rand/

            Használata: rand() % 10 -> Erre egy véletlen számot készít 0 és 9 között.

srand               Indítsd el a véletlen-generátort                                   // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/srand/

 

Dinamikus memória menedzselése:

calloc              Foglalj helyet a vektornek a memóriában      // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/calloc/

free                  Szabadítsd fel a helyet a memóriában // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/free/

malloc             Foglalj el memóriablokkot                                         // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/malloc/

realloc             Szabadítsd fel a memóriablokkot                               // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/realloc/

 

Környezet:

abort                Szakítsd meg a jelenlegi folyamatot               // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/abort/

atexit               Kilépéskor végrehajtandó függvények felsorolása    // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/atexit/

exit                  Kilépés a végrehajtásból                                            // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/exit/

getenv             Környezeti változó (string) kiírása                 // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/getenv/

system             Környezeti parancs végrehajtása                               // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/system/

            Parancsok például: cd xxx, dir, cls, ...

           

Keresés és rendezés:

bsearch                       Bináris keresés a vektorban                                       // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/bsearch/

qsort                A vektorbeli elemek sorbarendezése              // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/qsort/

 

Műveletek egészekkel:

abs                  Abszolút érték (int és long)                                        // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/abs/

div                   Maradékos osztás       (int és long)                            // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/div/

labs      Abszolút érték (long int)                                                        // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/labs/

ldiv      Maradékos osztás (long int)                                                   // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/ldiv/

 

Több-byte-os karakterműveletek:

mblen  Add meg a több-byte-os karakter hosszát                  // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/mblen/

mbtowc           A több-byte-os karaktert konvertáld át wide karaktérré         // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/mbtowc/

wctomb           A wide karaktert konvertáld át több-byte-ossá                                  // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/wctomb/

 

Több-byte-os stringek:

mbstowcs        Több-byte-os stringet konvertáld át wide-karakter stringgé   // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/mbstowcs/

wcstombs        Az előző fordítottja                                                                                                               // Mintapélda: http://cplusplus.com/reference/clibrary/cstdlib/wcstombs/

 

Makrók:

EXIT_FAILURE       Hibás kilépési kód

EXIT_SUCCESS      Sikeres kilépési kód

MB_CUR_MAX       A több-byte-os karakter maximális hossza

NULL                        Null-pointer

RAND_MAX            A rand() maximális visszatérési értéke

 

 

 

A C++ alapjai cikksorozat ezennel véget ért! Köszönöm a figyelmet és kérem a szokásos úton küldjék el a hozzászólásaikat, illetve a megjegyzéseiket! Előre is köszönöm!

 

© TFeri.hu, 2013.

Frissítve: 2017.