
Herbert Shildt
Osborne / McGraw – Hill
1997 , Berkeley CA
ISBN 0-07-882367-6
Превод и обработка – MesserSchmidt gripen@abv.bg Съдържание: Увод …………………………………………………………………. 12
Г ЛАВА 1 - Типове данни,променливи и константи…… 12
Основни типове……………………………………………………………. 12
Деклариране на променливи…………………………………………….. 14
Инициализиране на променливи………………………………………... 14
Идентификатори…………………………………………………………… 14
Класове……………………………………………………………………… 15
Наследяване………………………………………………………………… 17
Структури…………………………………………………………………… 18
Обединения…………………………………………………………………. 18
Изброявания………………………………………………………………… 20
C тагове……………………………………………………………………… 21
Спецификатори на класове за съхранение…………………………… 22
extern…………………………………………………………………. 22
auto…………………………………………………………………… 22
register……………………………………………………………….. 22
static………………………………………………………………….. 22
mutable………………………………………………………………. 23
Типови определители……………………………………………………… 23
const…………………………………………………………………… 23
volatile………………………………………………………………… 24
Масиви………………………………………………………………………. 24
Дефиниране на нови типове имена използвайки typedef…………. 25
Константи……………………………………………………………………. 25
Шестнайсетични и осмични константи……………………….. 26
Низови константи………………………………………………….. 26
Булеви константи………………………………………………….. 26
Константи след обратно наклонена черта……………………. 26
ГЛАВА 2 - Функции , интервали , именовани пространства и хедъри…………………………………………………………………. 27
Функции……………………………………………………………………… 27
Рекурсия……………………………………………………………………… 28
Предефиниране на функции…………………………………………….. 29
Подразбиращи се аргументи…………………………………………….. 29
Прототипи…………………………………………………………………… 30
Разбиране на интервалите и продължителността на съществуване
на променлива………………………………………………………………. 31
Именовани пространства………………………………………………….. 32
Функцията main ( )………………………………………………………… 32
Аргументи на функция…………………………………………………… 33
Подаване на указатели…………………………………………… 34
Параметри псевдоними…………………………………………… 35
Конструктори и деструктори……………………………………………. 35
Спецификатори на функция…………………………………………….. 36
Свързваща спецификация……………………………………………….. 36
Стандартните библиотеки на С и С++……………………………… 37
ГЛАВА 3 - Оператори …………………………………………….. 39
Аритметични оператори…………………………………………………… 39
Релационни и логически оператори……………………………………. 39
Побитови оператори……………………………………………………….. 40
Оператори & , | и ^………………………………………………… 41
Оператор за единствено допълнение ~…………………………. 41
Преместващите оператори >> и <<…………………………….. 41
Указателни оператори……………………………………………………… 42
Указателен оператор &…………………………………………….. 42
Указателен оператор *…………………………………………….. 43
Оператори за присвояване……………………………………………….. 43
Оператора ? …………………………………………………………………. 43
Оператори за членове…………………………………………………….. 44
Оператора запетайка………………………………………………………. 44
sizeof…………………………………………………………………………… 45
Преобразуване……………………………………………………………….. 45
Преобразувания в С++…………………………………………….. 45
Оператори за I / O………………………………………………………….. 46
. * и ->* указатели към член функции………………………………... 46
Оператор за определяне област на видимост :: ……………………. 47
new и delete………………………………………………………………….. 47
typeid…………………………………………………………………………… 47
Предефиниране на оператори…………………………………………….. 48
Таблица на приоритетите на операторите…………………………….. 48
ГЛАВА 4- Предпроцесор и коментари……………………… 49
#define………………………………………………………………………….. 49
#error…………………………………………………………………………… 50
#if , #ifdef , #ifndef , #else , #elif , и #endif…………………………………... 50
#include………………………………………………………………………… 51
#line…………………………………………………………………………….. 52
#pragma………………………………………………………………………… 52
#undef…………………………………………………………………………… 52
Предпроцесорните оператори # и ##…………………………………….. 53
Предефинирани имена на макроси………………………………………. 53
Коментари……………………………………………………………………. 54
Г ЛАВА 5 – Справочник на ключовите думи…………… 54
аsm…………………………………………………………………………….. 55
auto…………………………………………………………………………….. 55
bool…………………………………………………………………………….. 55
break…………………………………………………………………………… 55
case…………………………………………………………………………….. 55
catch……………………………………………………………………………. 56
char…………………………………………………………………………….. 56
class…………………………………………………………………………….. 56
const…………………………………………………………………………….. 56
const_cast………………………………………………………………………. 56
continue………………………………………………………………………… 57
default…………………………………………………………………………… 57
delete……………………………………………………………………………. 57
do………………………………………………………………………………... 57
double…………………………………………………………………………… 57
dynamic_cast…………………………………………………………………… 58
else………………………………………………………………………………. 58
enum…………………………………………………………………………….. 58
explicit…………………………………………………………………………... 58
extern …………………………………………………………………………… 59
false……………………………………………………………………………… 59
float……………………………………………………………………………… 59
for……………………………………………………………………………….. 59
friend……………………………………………………………………………. 60
goto……………………………………………………………………………… 60
if…………………………………………………………………………………. 61
inline…………………………………………………………………………….. 62
int………………………………………………………………………………... 62
long……………………………………………………………………………… 62
mutable…………………………………………………………………………. 62
namespace……………………………………………………………………… 62
new……………………………………………………………………………… 63
operator………………………………………………………………………… 64
private………………………………………………………………………….. 65
protected……………………………………………………………………….. 65
public…………………………………………………………………………… 66
register…………………………………………………………………………. 66
reinterpret_cast………………………………………………………………… 67
return…………………………………………………………………………… 67
short…………………………………………………………………………….. 67
signed…………………………………………………………………………… 67
sizeof……………………………………………………………………………. 67
static……………………………………………………………………………. 68
static_cast……………………………………………………………………… 68
struct…………………………………………………………………………… 68
switch…………………………………………………………………………… 69
template………………………………………………………………………… 70
this……………………………………………………………………………… 73
throw…………………………………………………………………………… 73
true…………………………………………………………………………….. 74
try……………………………………………………………………………… 75
typedef…………………………………………………………………………. 75
typeid………………………………………………………………………….. 75
typename……………………………………………………………………… 75
union…………………………………………………………………………… 75
unsigned………………………………………………………………………. 76
using…………………………………………………………………………… 76
virtual…………………………………………………………………………. 76
void…………………………………………………………………………….. 76
volatile…………………………………………………………………………. 77
wchar_t………………………………………………………………………… 77
while……………………………………………………………………………. 77
ГЛАВА 6 – Стандартни C I/O функции................................…. 77
clearerr………………………………………………………………………… 78
fclose…………………………………………………………………………… 78
feof …………………………………………………………………………….. 79
ferror…………………………………………………………………………… 79
fflush……………………………………………………………………………. 79
fgetc…………………………………………………………………………….. 79
fgetpos…………………………………………………………………………. 80
fgets……………………………………………………………………………. 80
fopen……………………………………………………………………………. 80
fprintf…………………………………………………………………………… 82
fputc…………………………………………………………………………….. 82
fputs…………………………………………………………………………….. 82
fread…………………………………………………………………………….. 83
freopen…………………………………………………………………………. 83
fscanf…………………………………………………………………………… 83
fseek……………………………………………………………………………. 83
fsetpos…………………………………………………………………………. 84
ftell……………………………………………………………………………… 84
fwrite…………………………………………………………………………… 84
getc…………………………………………………………………………….. 85
getchar………………………………………………………………………… 85
gets…………………………………………………………………………….. 85
perror…………………………………………………………………………. 86
printf…………………………………………………………………………… 86
putc…………………………………………………………………………….. 88
putchar………………………………………………………………………… 89
puts…………………………………………………………………………….. 89
remove…………………………………………………………………………. 89
rename…………………………………………………………………………. 89
rewind………………………………………………………………………….. 89
scanf……………………………………………………………………………. 90
setbuf…………………………………………………………………………… 92
setvbuf…………………………………………………………………………. 92
sprintf…………………………………………………………………………. 92
sscanf………………………………………………………………………….. 93
tmpfile………………………………………………………………………… 93
tmpnam……………………………………………………………………….. 93
ungetc…………………………………………………………………………. 93
vprintf ( ) , vfprintf ( ) и vsprintf ( ) ………………………………………. 94
ГЛАВА 7 – С - низови и символни функции……………. 94
isalnum………………………………………………………………………… 94
isalpha…………………………………………………………………………. 94
iscntrl………………………………………………………………………….. 95
isdigit………………………………………………………………………….. 95
isgraph………………………………………………………………………… 95
islower…………………………………………………………………………. 95
isprint…………………………………………………………………………. 95
ispunct…………………………………………………………………………. 95
isspace…………………………………………………………………………. 96
isupper…………………………………………………………………………. 96
isxdigit…………………………………………………………………………. 96
memchr………………………………………………………………………… 96
memcmp……………………………………………………………………….. 96
memcpy………………………………………………………………………... 96
memmove……………………………………………………………………… 97
memset………………………………………………………………………… 97
strcat…………………………………………………………………………… 97
strchr………………………………………………………………………….. 97
strcmp…………………………………………………………………………. 97
strcoll………………………………………………………………………….. 98
strcpy………………………………………………………………………….. 98
strcspn…………………………………………………………………………. 98
strerror………………………………………………………………………… 98
strlen…………………………………………………………………………… 98
strncat…………………………………………………………………………. 99
strncmp………………………………………………………………………… 99
strncpy…………………………………………………………………………. 99
strpbrk………………………………………………………………………… 99
strrchr…………………………………………………………………………. 100
strspn………………………………………………………………………….. 100
strstr…………………………………………………………………………… 100
strtok…………………………………………………………………………… 100
strxfrm…………………………………………………………………………. 101
tolower…………………………………………………………………………. 101
toupper…………………………………………………………………………. 101
Г ЛАВА 8 – Математични функции в С………………………. 101
acos…………………………………………………………………………….. 102
asin……………………………………………………………………………… 102
atan……………………………………………………………………………… 102
atan2…………………………………………………………………………….. 102
ceil………………………………………………………………………………. 102
cos………………………………………………………………………………. 103
cosh……………………………………………………………………………… 103
exp………………………………………………………………………………. 103
fabs……………………………………………………………………………… 103
floor…………………………………………………………………………….. 103
fmod……………………………………………………………………………. 103
frexp……………………………………………………………………………. 103
ldexp……………………………………………………………………………. 104
log………………………………………………………………………………. 104
log10…………………………………………………………………………….. 104
modf…………………………………………………………………………….. 104
pow……………………………………………………………………………… 104
sin………………………………………………………………………………. 104
sinh…………………………………………………………………………….. 104
sqrt…………………………………………………………………………….. 105
tan………………………………………………………………………………. 105
tanh…………………………………………………………………………….. 105
Г ЛАВА 9 – Функции в С за време , дата и локализационни функции……………………………………………………………………. 105
asctime………………………………………………………………………… 106
clock…………………………………………………………………………… 106
ctime…………………………………………………………………………… 106
difftime………………………………………………………………………… 106
gmtime………………………………………………………………………… 107
localeconv……………………………………………………………………… 107
localtime………………………………………………………………………. 108
mktime………………………………………………………………………… 108
setlocale………………………………………………………………………… 109
srftime…………………………………………………………………………. 110
time…………………………………………………………………………….. 111
Г ЛАВА 10 – Функции в С за динамично заделяне
calloc…………………………………………………………………………… 112
free…………………………………………………………………………….. 112
malloc………………………………………………………………………….. 112
realloc………………………………………………………………………….. 113
ГЛАВА 11 – Разнообразни функции на С…………………. 113
abort……………………………………………………………………………. 114
abs………………………………………………………………………………. 114
assert……………………………………………………………………………. 114
atexit…………………………………………………………………………….. 114
atof………………………………………………………………………………. 115
atoi………………………………………………………………………………. 115
atol………………………………………………………………………………. 115
bsearch………………………………………………………………………….. 115
div………………………………………………………………………………. 116
exit………………………………………………………………………………. 116
getenv…………………………………………………………………………… 116
labs……………………………………………………………………………… 116
ldiv……………………………………………………………………………… 117
longjmp………………………………………………………………………… 117
qsort…………………………………………………………………………….. 117
raise…………………………………………………………………………….. 118
rand…………………………………………………………………………….. 118
setjmp………………………………………………………………………….. 118
signal……………………………………………………………………………. 119
srand…………………………………………………………………………….. 119
strtod…………………………………………………………………………….. 119
strtol……………………………………………………………………………… 120
strtoul……………………………………………………………………………. 120
system……………………………………………………………………………. 120
va_arg ( ) , va_start ( ) и va_end ( ) …………………………………………. 121
Г ЛАВА 12 – Системата на С++ за I/O в стар стил…… 122
Основни класове за потоци………………………………………………. 123
Предефинирани потоци в С++…………………………………………… 123
Форматни флагове……………………………………………………… …. 123
I/O Манипулатори………………………………………………………….. 124
Iostream функции в стар стил…………………………………………… 126
bad……………………………………………………………………………… 126
clear…………………………………………………………………………… 126
eatwhite………………………………………………………………………. 127
eof……………………………………………………………………………… 127
fail……………………………………………………………………………… 127
fill……………………………………………………………………………… 127
flags…………………………………………………………………………… 127
flush…………………………………………………………………………… 127
fstream ( ) , ifstream ( ) и ofstream ( ) ……………………………………. 128
gcount…………………………………………………………………………. 129
get……………………………………………………………………………… 129
getline…………………………………………………………………………. 129
good…………………………………………………………………………… 130
ignore…………………………………………………………………………. 130
open……………………………………………………………………………. 130
peek……………………………………………………………………………. 132
precision………………………………………………………………………. 132
put…………………………………………………………………………….. 132
putback…………………..…………………………………………………… 132
rdstate…………………………………………………………………………. 133
read……………………………………………………………………………. 133
seekg ( ) и seekp ( ) …………………………………………………………. 133
setf…………………………………………………………………………….. 134
setmode……………………………………………………………………….. 134
str……………………………………………………………………………… 135
strstream ( ) , istrstream ( ) и ostrstream ( ) ……………………………… 135
sync_with_stdio………………………………………………………………. 136
tellg ( ) и tellp ( ) ……………………………………………………………. 136
unsetf………………………………………………………………………….. 136
width…………………………………………………………………………… 136
write……………………………………………………………………………. 137
Г ЛАВА 13 – Стандартната система на С++ за I/O……. 137
Използване на новата iostream библиотека ………………………….. 137
Базови класове за I/O……….…………………………………………….. 137
Предефинирани потоци в С++…………………………………………… 138
Типа streamsize………………………………………………………………. 138
Типа iostate……………………………….…………………………………… 139
Форматни флагове и типа fmtflags……………………………………… 139
I/O манипулатори…………………………………………………………… 140
Стандартни iostream функции……………………………………………. 142
bad……………………………………………………………………………… 142
clear……………………………………………………………………………. 142
eof………………………………………………………………………………. 142
fail………………………………………………………………………………. 142
fill……………………………………………………………………………….. 142
flags…………………………………………………………………………… 143
flush…………………………………………………………………………… 143
fstream ( ) , ifstream ( ) и ofstream ( ) …………….……………………… 143
gcount…………………………………………………………………………. 144
get…………………………………………………………………………….. 144
getline…………………………………………………………………………. 145
good……………………………………………………………………………. 145
ignore…………………………………………………………………………. 145
open…………………………………………………………………………… 145
peek……………………………………………………………………………. 146
precision……………………………………………………………………….. 146
put……………………………………………………………………………… 147
putback………………………………………………………………………… 147
rdstate…………………………………………………………………………. 147
read……………………………………………………………………………. 147
seekg ( ) и seekp ( )..…………………………………………………………. 148
setf……………………………………………………………………………… 148
sync_with_stdio……………………………………………………………….. 149
tellg ( ) и tellp ( ) …………………………………………………………….. 149
unsetf…………………………………………………………………………… 149
width……………………………………………………………………………. 149
write……………………………………………………………………………. 150
ГЛАВА 14 – Стандартната библиотека с шаблони ( STL) на С++ ……………………………………………………………………… 150
Преглед на контейнери , алгоритми и итератори ……………………. 150
Контейнер…………………………………………………………….. 150
Алгоритми……………………………………………………………. 151
Итератори…………………………………………………………….. 151
Алокатори…………………………………………………………………….. 152
Предикати и сравнителни функции…………………………………….. 152
Инструменти и функционални хедъри…………………………………. 152
Контейнерни класове ………………………………………………………. 153
bitset……………………………………………………………………. 155
deque…………………………………………………………………… 156
list………………………………………………………………………. 158
map……………………………………………………………………… 160
multimap……………………………………………………………….. 162
multiset………………………………………………………………….. 163
queue……………………………………………………………………. 165
priority_queue…………………………………………………………. 165
set………………………………………………………………………. 166
stack……………………………………………………………………. 167
vector…………………………………………………………………… 168
Алгоритми…………………………………………………………………… 170
adjacent_find…………………………………………………………. 170
binary_search………………………………………………………… 171
copy……………………………………………………………………. 171
copy_backward……………………………………………………….. 171
count…………………………………………………………………… 171
count_if………………………………………………………………… 171
equal…………………………………………………………………… 171
equal_range…………………………………………………………… 171
fill и fill_n……………………………………………………………. 172
find…………………………………………………………………….. 172
find_end………………………………………………………………. 172
find_first_of…………………………………………………………… 172
find_if………………………………………………………………….. 172
for_each……………………………………………………………….. 172
generate и generate_n…………………………………………….… 173
includes……………………………………………………………….. 173
inplace_merge………………………………………………………… 173
iter_swap……………………………………………………………… 173
lexicographical_compare……………………………………………. 173
lower_bound………………………………………………………….. 174
make_heap……………………………………………………………. 174
max……………………………………………………………………. 174
max_element………………………………………………………….. 174
merge………………………………………………………………….. 174
min…………………………………………………………………….. 174
min_element…………………………………………………………… 175
mismatch………………………………………………………………. 175
next_permutation…………………………………………………….. 175
nth_element…………………………………………………………… 175
partial_sort……………………………………………………………. 176
partial_sort_copy……………………………………………………… 176
partition……………………………………………………………….. 176
pop_heap………………………………………………………………. 176
prev_permutation…………………………………………………….. 176
push_heap……………………………………………………………… 177
random_shuffle……………………………………………………….. 177
remove , remove_if , remove_copy и remove_copy_if……………. 177
replace , replace_copy , replace_if и replace_copy_if……………. 178
reverse и reverse_copy……………………………………………… 178
rotate и rotate_copy…………………………………………………. 178
search………………………………………………………………….. 179
search_n……………………………………………………………….. 179
set_difference…………………………………………………………. 179
set_intersection……………………………………………………….. 179
set_symetric_difference………………………………………………. 180
set_union……………………………………………………………… 180
sort……………………………………………………………………. 180
sort_heap…………………………………………………………….. 180
stable_partition………………………………………………………. 181
stable_sort…………………………………………………………….. 181
swap…………………………………………………………………… 181
swap_ranges………………………………………………………….. 181
transform……………………………………………………………… 181
unique и unique_copy………………………………………………. 182
upper_bound………………………………………………………….. 183
Г ЛАВА 15 – С++ Низове и изключения……………………. 183
Низове………………………………………………………………………… 183
Изключения………………………………………………………………….. 192
< exception >………………………………………………………….. 192
< stdexcept >………………………………………………………….. 193
УВОД
С и С++ са най - важните световни програмни езици . Всъщност, за да бъдете професионален програмист днес означава опитност в тези два езика.Те са основата, върху която е изградено модерното програмиране. С беше изобретен от Денис Ричи през 1970г. С е език от средно ниво.Той комбинира контролните структури на езиците от високо ниво със способността да манипулира битове, байтове и указатели (адреси) . Така С дава почти цялостен контрол на програмиста върху машината . С беше стандартизиран късно през 1989г.когато стандарта на Американския национален институт за стандарти /ANSI/ беше одобрен.Този стандарт беше одобрен и от ISO /Международната организация за стандарти/ през 1990г.Стандартът на С беше коригиран леко през 1996г.
С++ беше създаден от Bjarne Stroustrup през 1980г.Той започва като множество от обектно-ориентирани разширения на С, но скоро се разшири да съществува като отделен програмен език.Докато С++ е все още изграден върху основата на С, то неговите нови свойства увеличиха почти двойно размера на езика.Излишно е да казвам, че С++ е един от най-мощните компютърни езици създадени досега.Стандарта ANSI/ISO за С++ беше завършен и сега С++ е стандартизиран език.Материалът в тази книга описва ANSI стандарт С и ANSI/ISO стандарт С++.
Както вие несъмнено усещате С и С++ са обширни теми.Тук, разбира се не е възможно да покрием всички аспекти на тези важни езици.Вместо това този бърз справочник извлича техните най-забележителни качества в удобна и лесна за употреба форма.
Сподели с приятели: |