A. függelék - Függelék – Szabványos C++ összefoglaló táblázatok

Tartalom
A.1. Az ASCII kódtábla
A.2. C++ nyelv foglalt szavai
A.3. Escape karakterek
A.4. C++ adattípusok és értékkészletük
A.5. A C++ nyelv utasításai
A.6. C++ előfeldolgozó (perprocesszor) utasítások
A.7. C++ műveletek elsőbbsége és csoportosítása
A.8. Néhány gyakran használt matematikai függvény
A.9. C++ tárolási osztályok
A.10. Input/Output (I/O) manipulátorok
A.11. A szabványos C++ nyelv deklarációs állományai

A.1. Az ASCII kódtábla

CHAR

DEC

HEX

 

CHAR

DEC

HEX

 

CHAR

DEC

HEX

 

CHAR

DEC

HEX

[NUL]

0

00

   

32

20

 

@

64

40

 

`

96

60

[SOH]

1

01

 

!

33

21

 

A

65

41

 

a

97

61

[STX]

2

02

 

"

34

22

 

B

66

42

 

b

98

62

[ETX]

3

03

 

#

35

23

 

C

67

43

 

c

99

63

[EOT]

4

04

 

$

36

24

 

D

68

44

 

d

100

64

[ENQ]

5

05

 

%

37

25

 

E

69

45

 

e

101

65

[ACK]

6

06

 

&

38

26

 

F

70

46

 

f

102

66

[BEL]

7

07

 

'

39

27

 

G

71

47

 

g

103

67

[BS]

8

08

 

(

40

28

 

H

72

48

 

h

104

68

[HT]

9

09

 

)

41

29

 

I

73

49

 

i

105

69

[LF]

10

0A

 

*

42

2A

 

J

74

4A

 

j

106

6A

[VT]

11

0B

 

+

43

2B

 

K

75

4B

 

k

107

6B

[FF]

12

0C

 

,

44

2C

 

L

76

4C

 

l

108

6C

[CR]

13

0D

 

-

45

2D

 

M

77

4D

 

m

109

6D

[SO]

14

0E

 

.

46

2E

 

N

78

4E

 

n

110

6E

[SI]

15

0F

 

/

47

2F

 

O

79

4F

 

o

111

6F

[DLE]

16

10

 

0

48

30

 

P

80

50

 

p

112

70

[DC1]

17

11

 

1

49

31

 

Q

81

51

 

q

113

71

[DC2]

18

12

 

2

50

32

 

R

82

52

 

r

114

72

[DC3]

19

13

 

3

51

33

 

S

83

53

 

s

115

73

[DC4]

20

14

 

4

52

34

 

T

84

54

 

t

116

74

[NAK]

21

15

 

5

53

35

 

U

85

55

 

u

117

75

[SYN]

22

16

 

6

54

36

 

V

86

56

 

v

118

76

[ETB]

23

17

 

7

55

37

 

W

87

57

 

w

119

77

[CAN]

24

18

 

8

56

38

 

X

88

58

 

x

120

78

[EM]

25

19

 

9

57

39

 

Y

89

59

 

y

121

79

[SUB]

26

1A

 

:

58

3A

 

Z

90

5A

 

z

122

7A

[ESC]

27

1B

 

;

59

3B

 

[

91

5B

 

{

123

7B

[FS]

28

1C

 

<

60

3C

 

\

92

5C

 

|

124

7C

[GS]

29

1D

 

=

61

3D

 

]

93

5D

 

}

125

7D

[RS]

30

1E

 

>

62

3E

 

^

94

5E

 

~

126

7E

[US]

31

1F

 

?

63

3F

 

_

95

5F

 

[DEL]

127

7F

A.2. C++ nyelv foglalt szavai

and

double

not

this

and_eq

dynamic_cast

not_eq

throw

asm

else

operator

true

auto

enum

or

try

bitand

explicit

or_eq

typedef

bitor

export

private

typeid

bool

extern

protected

typename

break

false

public

union

case

float

register

unsigned

catch

for

reinterpret_cast

using

char

friend

return

virtual

class

goto

short

void

compl

if

signed

volatile

const

inline

sizeof

wchar_t

const_cast

int

static

while

continue

long

static_cast

xor

default

mutable

struct

xor_eq

delete

namespace

switch

 

do

new

template

 

Az ANSI/ISO C++ 1998. szabvány szerint

alignas

char32_t

final

override

alignof

constexpr

noexcept

static_assert

char16_t

decltype

nullptr

thread_local

A C++11 szabvány által hozzáadott

abstract

for each

interior_ptr

ref class/struct

array

gcnew

literal

safe_cast

delegate

generic

nullptr

sealed

enum class/struct

in

override

value class/struct

event

initonly

pin_ptr

where

finally

interface class/struct

property

 

A C++/CLI nyelvdefiníció által hozzáadott

A.3. Escape karakterek

Értelmezés

ASCII karakter

Escape szekvencia

csengő

BEL

'\a'

visszatörlés

BS

'\b'

lapdobás

FF

'\f'

újsor

NL (LF)

'\n'

kocsi-vissza

CR

'\r'

vízszintes tabulálás

HT

'\t'

függőleges tabulálás

VT

'\v'

aposztróf

'

'\''

idézőjel

"

'\"'

visszaperjel

\

'\\'

kérdőjel

?

'\?'

ANSI karakter oktális kóddal

ooo

'\ooo'

nulla karakter

NUL

'\0'

ANSI karakter hexadecimális kóddal

hh

'\xhh'

16-bites Unicode karakter

hhhh

'\uhhhh'

32-bites Unicode karakter

hhhhhhhh

'\Uhhhhhhhh'

A.4. C++ adattípusok és értékkészletük

Adattípus

Értékkészlet

Méret

(bájt)

Pontosság

(számjegy)

bool

false, true

1

 

char

-128..127

1

 

signed char

-128..127

1

 

unsigned char

0..255

1

 

wchar_t

0..65535

2

 

int

-2147483648..2147483647

4

 

unsigned int

0..4294967295

4

 

short

-32768..32767

2

 

unsigned short

0..65535

2

 

long

-2147483648..2147483647

4

 

unsigned long

0..4294967295

4

 

long long

-9223372036854775808.. 9223372036854775807

8

 

unsigned long long

0..18446744073709551615

8

 

float

3.4E-38..3.8E+38

4

6

double

1.7E-308..1.7E+308

8

15

long double

3.4E-4932..3.4E+4932

10

19

A.5. A C++ nyelv utasításai

Kategória

C++ jelek, kulcsszavak

Deklarációs/definíciós utasítások

típusok (class, struct, union, enum, typedef), függvények, objektumok

Kifejezés utasítások

kifejezés;

Üres utasítás

;

Összetett utasítás

{ utasítások }

Szelekciós utasítások

if, else, switch, case

Iterációs utasítások

do, for, while

Vezérlésátadó utasítások

break, continue, default, goto, return

Kivételkezelő utasítások

throw, try-catch

A.6. C++ előfeldolgozó (perprocesszor) utasítások

Kategória

Direktíva

Feltételes fordítás

#ifdef, #ifndef, #if, #endif, #else, #elif

Szimbólum/makró definiálása

#define

Szimbólum/makró definiáltságának megszüntetése

#undef

Forrásállomány beépítése

#include

Fordítási hiba előállítása

#error

Fordítói üzenetekben a sorszám (és a fájlnév) módosítása

#line

A fordítási folyamat implementációfüggő vezérlése

#pragma

Előre definiált makrók

Makró

Leírás

__DATE__

A fordítás dátumát tartalmazó sztring.

__TIME__

A fordítás időpontját tartalmazó sztring.

__FILE__

A forrásfájl nevét tartalmazó sztring.

__LINE__

A forrásállomány aktuális sorának sorszámát tartalmazó konstans (1-től sorszámoz).

__STDC__

A értéke 1, ha a fordító ANSI C++ fordítóként működik, különben nem definiált.

__cplusplus

A értéke 1, ha C++ forrásállományban, különben nem definiált.

__cplusplus_cli

A értéke 1, ha C++/CLI forrásállományban, különben nem definiált.

A.7. C++ műveletek elsőbbsége és csoportosítása

Precedencia

Művelet

Leírás

Csoportosítás

1.

::

hatókörfeloldás

nincs

2.

( )

függvényhívás

balról-jobbra

[ ]

tömbindexelés

->

közvetett tagkiválasztás

.

közvetlen tagkiválasztás

++

(postfix) léptetés előre

--

(postfix) léptetés vissza

típus ()

típus-átalakítás

dynamic_cast

futásidejű ellenőrzött típus-átalakítás

static_cast

fordításidejű ellenőrzött típus-átalakítás

reinterpret_cast

ellenőrizetlen típus-átalakítás

const_cast

konstans típus-átalakítás

typeid

típus-azonosítás

3.

!

logikai tagadás (NEM)

jobbról-balra

~

bitenkénti negálás

+

+ előjel

-

- előjel

++

(prefix) léptetés előre

--

(prefix) léptetés vissza

&

a címe operátor

*

az indirektség operátor

( típus )

típus-átalakítás

sizeof

objektum/típus bájtban kifejezett mérete

new

dinamikus tárterület foglalása

delete

dinamikus tárterület felszabadítása

4.

.*

osztálytagra történő indirekt hivatkozás

balról-jobbra

->*

mutatóval megadott objektum tagjára való indirekt hivatkozás

5.

*

szorzás

balról-jobbra

/

osztás

%

maradék

6.

+

összeadás

balról-jobbra

kivonás

7.

<<

biteltolás balra

balról-jobbra

>>

biteltolás jobbra

8.

<

kisebb

balról-jobbra

<=

kisebb vagy egyenlő

>

nagyobb

>=

nagyobb vagy egyenlő

9.

==

egyenlő

balról-jobbra

!=

nem egyenlő

balról-jobbra

10.

&

bitenkénti ÉS

balról-jobbra

11.

|

bitenkénti VAGY

balról-jobbra

12.

^

bitenkénti kizáró VAGY

balról-jobbra

13.

&&

logikai ÉS

balról-jobbra

14.

||

logikai VAGY

balról-jobbra

15.

kif ? kif : kif

feltételes kifejezés

jobbról-balra

16.

=

egyszerű értékadás

jobbról-balra

*=

szorzat megfeleltetése

/=

hányados megfeleltetése

%=

maradék megfeleltetése

+=

összeg megfeleltetése

-=

különbség megfeleltetése

<<=

balra eltolt bitek megfeleltetése

>>=

jobbra eltolt bitek megfeleltetése

&=

bitenkénti ÉS megfeleltetése

^=

bitenkénti kizáró VAGY megfeleltetése

|=

bitenkénti VAGY megfeleltetése

17.

throw kif

kivétel kiváltása

jobbról-balra

18.

kif , kif

műveletsor (vessző operátor)

balról-jobbra

A.8. Néhány gyakran használt matematikai függvény

Használat

Típusa

Függvény

Include fájl

abszolút érték képzése

valós

fabs(valós x)

cmath

abszolút érték képzése

egész

abs(egész x)

cstdlib

szög (radián) koszinusza

valós

cos(valós x)

cmath

szög (radián) szinusza

valós

sin(valós x)

cmath

szög (radián) tangense

valós

tan(valós x)

cmath

az argumentum arkusz koszinusza (radián)

valós

acos(valós x)

cmath

az argumentum arkusz szinusza (radián)

valós

asin(valós x)

cmath

az argumentum arkusz tangense (radián)

valós

atan(valós x)

cmath

az y/x arkusz tangense (radián)

valós

atan(valós x, valós y)

cmath

természetes alapú logaritmus

valós

log(valós x)

cmath

tízes alapú logaritmus

valós

log10(valós x)

cmath

ex  

valós

exp(valós x)

cmath

hatványozás (xy)

valós

pow(valós x, valós y)

cmath

négyzetgyök

valós

sqrt(valós x)

cmath

véletlen szám 0 és RAND_MAX között

valós

int rand(void)

cstdlib

π értéke

valós

4.0*atan(1.0)

cmath

Ahol a valós típus a float, double és a long double típusok egyikét jelöli, míg az egész az int és long típusok valamelyikét.

A.9. C++ tárolási osztályok

Jellemzők

Eredmény

Szint

Tétel

Tárolási osztály

Élettartam

Láthatóság

fájlszintű hatókör

változó-definíció

static

globális

korlátozva az adott állományra, a definíció helyétől a fájl végéig

változó-deklaráció

extern

globális

a definíció helyétől a fájl végéig

prototípus vagy függvénydefiníció

static

globális

korlátozva az adott állományra

függvény prototípus

extern

globális

a definíció helyétől a fájl végéig

blokk-szintű hatókör

változó-deklaráció

extern

globális

blokk

változó-definíció

static

globális

blokk

változó-definíció

auto

lokális

blokk

változó-definíció

register

lokális

blokk

A.10. Input/Output (I/O) manipulátorok

Paraméter nélküli manipulátorok <iostream>

Az alábbi manipulátorokat párban használjuk, hatásuk a bekapcsolástól a kikapcsolásig terjed:

Manipulátor

Irány

Leírás (bekapcsolva)

boolalpha

noboolalpha

I/O

A logikai értékek megadhatók a true és a false szavakkal.

showbase

noshowbase

O

A számok előtt a számrendszer jele (0, vagy 0x) is megjelenik.

showpoint

noshowpoint

O

A tizedespont mindig megjelenik.

showpos

noshowpos

O

A pozitív előjel is megjelenik.

skipws

noskipws

I

Az elválasztó karakterek átlépése.

unitbuf

nounitbuf

O

Automatikus puffer ürítés minden művelet után.

uppercase

nouppercase

O

A számok megjelenítésében az (e és az x) nagybetűk lesznek

Néhány adatfolyamot módosító manipulátor:

Manipulátor

Irány

Leírás

endl

O

Sorvége-karakter.

ends

O

Sztringvége karakter.

ws

I

Az elválasztó karakterek átlépése.

Az alábbi manipulátorok hatását az ugyanazon csoportban megadottal módosíthatjuk:

Manipulátor

Irány

Leírás

Kiigazítás

left

O

Balra igazít.

right

O

Jobbra igazít – alapértelmezés

internal

O

A mezőben a lehető legjobban széthúzva jelennek meg az értékek.

Számrendszer

dec

I/O

Tízes - alapértelmezés

hex

I/O

Tizenhatos.

oct

I/O

Nyolcas.

A valós számok megjelenítése (hiányukban a fordító választ formátumot)

fixed

O

Tizedes tört alakban.

scientific

O

Hatványkitevős formában.

Paraméterrel rendelkező manipulátorok <iomanip>:

A paraméterrel rendelkező manipulátorok hatása általában csak a közvetlenül utánuk álló adatelemre terjed ki.

Manipulátor

Irány

Leírás

setfill(nFill )

O

Kitöltő-karakter

setprecision(np)

O

Tizedes jegyek

setw(nw);

O

Mező-szélesség

setbase(nb);

O

Szám-rendszer.

A.11. A szabványos C++ nyelv deklarációs állományai

A C++ nyelvet támogató könyvtár

Típusok (NULL, size_t stb.)

<cstddef>

Az implementáció jellemzői

<limits>, <climits>, <cfloat>

Programindítás és –befejezés

<cstdlib>

Dinamikus memóriakezelés

<new>

Típusazonosítás

<typeinfo>, <typeindex>, <type_traits>

Kivételkezelés

<exception>

Egyéb futásidejű támogatás

<cstdarg>, <csetjmp>, <ctime>, <csignal>, <cstdlib>,<cstdbool>, <cstdalign>

Hibakezelési könyvtár

Kivételosztályok

<stdexcept>

Assert makrók

<cassert>

Hibakódok

<cerrno>

Rendszerhiba-támogatás

<system_error>

Általános szolgáltatások könyvtára

Műveleti elemek (STL)

<utility>

Műveletobjektumok (STL)

<functional>

Memóriakezelés (STL)

<memory>, <scoped_allocator>

Speciális osztálysablonok (STL)

<bitset>, <tuple>

Dátum- és időkezelés

<ctime> , <chrono>

Sztring könyvtár

Sztring osztályok

<string>

Nullavégű karakterláncok kezelését segítő függvények

<cctype>, <cwctype>, <cstring>, <cwchar>, <cstdlib>, <cuchar>

Országfüggő (helyi) beállítások könyvtára

A helyi sajátosságok szabványos kezelés

<locale>

A C könyvtár helyi beállításai

<clocale>

Unicode konverziók támogatása

<codecvt>

A tárolók könyvtára (STL)

Szekvenciális tárolók (STL)

<array>, <deque>, <list>, <vector>, <forward_list>

Asszociatív tárolók (STL)

<map>,  <set>

Nem rendezett asszociatív tárolók (STL)

<unordered _map>, <unordered_set>

Tároló adaptációk (STL)

<queue>, <stack>

Iterárotok (általánosított mutatók) könyvtára (STL)

Iterátorelemek, előre definiált iterátorok, adatfolyam iterátorok (STL)

<iterator>

Algoritmusok könyvtára

Adatsorkezelés, rendezés, keresés stb. (STL)

<algorithm>

A C könyvtár algoritmusai

<cstdlib>

Numerikus könyvtár

Komplex számok

<complex>

Számtömbök

<valarray>

Általánosított numerikus műveletek (STL)

<numeric>

A C könyvtár numerikus elemei

<cmath>, <cstdlib>, <ctgmath>

Fordításidejű racionális aritmetika

<ratio>

Véletlen szám előállítása

<random>

A lebegőpontos környezet kezelése

<cfenv>

Input/output könyvtár

Forward (előrevetett) deklarációk

<iosfwd>

Szabványos iostream objektumok

<iostream>

Az iostream osztályok alaposztálya

<ios>

Adatfolyam pufferek

<streambuf>

Adatformázás és manipulátorok

<istream>, <ostream>, <iomanip>

Sztring adatfolyamok

<sstream>

Fájl adatfolyamok

<fstream>, <cstdio>, <cinttypes>

Reguláris kifejezések könyvtár

Reguláris kifejezések kezelése

<regex>

Műveletek a konkurens programozáshoz

Magtípusok és  -műveletek

<atomic>

Thread (programszál) könyvtár

Szálak létrehozása és vezérlése

<thread>, <mutex>, <condition_variable>, <future>

Az aláhúzott nevek a C++11 szabvány deklarációs állományait jelölik.