목차 일부
Part 1 C++의 기본, C언어 ... 1
제1장 C의 개요 ... 2
1-1 C의 기원과 역사 ... 2
C89와 C99 ... 3
1-2 중급언어 C ... 4
1-3 구조적 언어 C ... 6
1-4 프로그래머를 위한 언어 C ... 9
1-5 C 프로그램의 형식 ... 11...
더보기
목차 전체
Part 1 C++의 기본, C언어 ... 1
제1장 C의 개요 ... 2
1-1 C의 기원과 역사 ... 2
C89와 C99 ... 3
1-2 중급언어 C ... 4
1-3 구조적 언어 C ... 6
1-4 프로그래머를 위한 언어 C ... 9
1-5 C 프로그램의 형식 ... 11
1-6 라이브러리와 링킹 ... 13
1-7 분할 컴파일 ... 14
1-8 파일확장자 .C와 .CPP의 이해 ... 15
제2장 수식 ... 16
2-1 5가지 기본 자료형 ... 16
2-2 기본형의 수정 ... 18
2-3 식별자 이름 ... 20
2-4 변수 ... 21
변수 선언 위치 ... 21
지역 변수 ... 22
형식 매개 변수 ... 25
전역변수 ... 26
2-5 const와 volatile 수식자 ... 28
const ... 28
volatile ... 30
2-6 기억장소 클래스 지정자 ... 31
extern ... 31
static 변수 ... 34
register 변수 ... 37
2-7 변수 초기화 ... 39
2-8 상수 ... 40
진수와 8진수 상수 ... 41
문자열 상수 ... 41
백슬래시 문자 상수 ... 42
2-9 연산자 ... 43
치환 연산자 ... 43
치환에서의 형 변환 ... 44
복수치환 ... 46
산술 연산자 ... 46
증가와 감소 ... 47
관계 연산자와 논리 연산자 ... 49
비트 연산자 ... 52
물음표(?) 연산자 ... 57
&와 *포인터 연산자 ... 58
sizeof 연산자 ... 60
콤마 연산자 ... 61
점과 화살표 연산자 ... 62
대괄호와 소괄호 연산자 ... 63
우선순위 요약 ... 63
2-10 수식 ... 64
평가순서 ... 64
수식에서의 형 변환 ... 65
캐스트 ... 66
공란과 괄호 ... 67
복합치환 ... 68
제3장 구문 ... 70
3-1 C와 C++에서의 참과 거짓 ... 71
3-2 선택문 ... 72
if ... 72
중첩된 if문 ... 74
if-else-if구조 ... 75
물음표(?) 연산자 ... 77
조건문 ... 80
switch ... 81
Nested switch Statements ... 85
3-3 반복문 ... 85
for 루프문 ... 85
다양한 형태의 for 루프문 ... 87
무한루프 ... 92
본체 없는 for 루프 ... 93
while 루프 ... 93
do-while 루프 ... 96
3-4 선택문과 반복문 안에서 변수 선언 ... 98
3-5 분기문 ... 99
return문 ... 100
goto문 ... 100
break문 ... 101
exit() 함수 ... 103
continue문 ... 105
3-6 수식문 ... 106
3-7 블록문 ... 107
제4장 배열과 문자열 ... 108
4-1 1차원 배열 ... 108
4-2 포인터를 배열에 생성하기 ... 110
4-3 차원배열을 함수로 전달하기 ... 111
4-4 널 종료 문자열 ... 113
2차원 배열 ... 115
문자열 배열 ... 120
4-5 다차원 배열 ... 122
4-6 포인터 인덱싱 ... 123
4-7 배열 초기화 ... 126
크기 없는 배열 초기화 ... 128
4-8 보드 게임 예제 ... 130
제5장 포인터 ... 134
5-1 포인터란 무엇인가? ... 134
5-2 포인터 변수 ... 135
5-3 포인터 연산자 ... 136
5-4 포인터 수식 ... 138
포인터 치환 ... 138
포인터 연산 ... 138
포인터 비교 ... 140
5-5 포인터와 배열 ... 142
포인터의 배열 ... 144
5-6 다중 간접참조 ... 145
5-7 포인터 초기화 ... 147
5-8 함수에 대한 포인터 ... 150
5-9 C의 동적 할당 함수 ... 153
5-10 포인터의 문제점 ... 155
제6장 함수 ... 160
6-1 함수의 일반 형식 ... 160
6-2 함수의 범위 규칙 ... 161
6-3 함수 인자 ... 162
call by value, call by reference ... 163
call by reference 생성 ... 164
배열의 전달 ... 165
6-4 main()의 인자들 : argc, argv ... 168
6-5 return문 ... 173
함수에서 리턴 ... 173
값 리턴 ... 175
포인터 리턴하기 ... 177
void형 함수 ... 178
무엇으로 main()을 리턴하는가? ... 179
6-6 재귀 ... 180
6-7 함수 원형 ... 182
표준 라이브러리 함수 원형 ... 185
6-8 가변 매개 변수 리스트 선언 ... 185
6-9 함수 매개 변수 선언의 어제와 오늘 ... 186
제7장 구조체·공용체·나열형·사용자 정의형 ... 188
7-1 구조체 ... 189
구조체 멤버 접근 ... 192
구조체 치환 ... 193
7-2 구조체의 배열 ... 193
7-3 구조체를 함수로 전달하기 ... 194
구조체 멤버들을 함수로 전달하기 ... 194
전체 구조체를 함수로 전달하기 ... 195
7-4 구조체 포인터 ... 197
구조체 포인터 선언 ... 198
구조체 포인터 사용 ... 198
7-5 구조체 내에 포함된 배열과 구조체 ... 202
7-6 비트 필드 ... 203
7-7 공용체 ... 206
7-8 나열형 ... 210
7-9 이식성을 보장하기 위한 sizeof ... 213
7-10 typedef ... 215
제8장 콘솔 입출력 ... 216
8-1 중요한 응용 노트 ... 217
8-2 문자 입출력 ... 218
getchar()의 문제점 ... 219
변형된 getchar() ... 219
8-3 문자열 입출력 ... 221
8-4 포맷화된 콘솔 입출력 ... 224
8-5 printf() ... 225
문자 출력 ... 226
숫자 출력하기 ... 226
주소 출력 ... 228
n% 지정자 ... 228
포맷 수정자 ... 229
최소 필드폭 지정자 ... 229
정밀도 지정자 ... 231
출력줄 맞추기 ... 232
다른 자료형 처리 ... 232
*와 수정자 ... 233
8-6 scanf() ... 234
포맷 지정자 ... 234
숫자 입력 ... 235
부호 없는 정수 입력하기 ... 236
scanf()를 이용한 문자 읽기 ... 236
문자열 읽기 ... 236
주소 입력하기 ... 237
%n 지정자 ... 238
scanset 사용하기 ... 238
원하지 않는 공란 문자 제거하기 ... 239
제어 문자열의 비공란 문자 ... 239
scanf()에는 주소가 필요 ... 240
포맷 수정자 ... 240
입력 제한 ... 241
제9장 파일 입출력 ... 242
9-1 C와 C++ 입출력 ... 242
9-2 스트림과 파일 ... 243
9-3 스트림 ... 243
텍스트 스트림 ... 244
2진 스트림 ... 244
9-4 파일 ... 244
9-5 파일 시스템의 기본 ... 245
파일 포인터 ... 246
파일 열기 ... 247
파일 닫기 ... 249
문자 쓰기 ... 249
문자 읽기 ... 250
fopen(), getc(), putc(), fclose() 사용 ... 250
feof() 사용 ... 252
fputs()와 fgets()를 문자열에 사용하기 ... 254
rewind() ... 255
ferror() ... 256
파일 삭제 ... 258
스트림 비우기 ... 259
9-6 fread()와 fwrite() ... 260
fread()와 fwrite() 사용 ... 260
9-7 fseek와 랜덤 액세스 입출력 ... 262
9-8 fprintf()와 fscanf() ... 264
9-9 표준 스트림 ... 266
콘솔 입출력 연결 ... 267
표준 스트림의 방향을 바꾸는 freopen() ... 269
제10장 선행처리기와 주석문 ... 270
10-1 선행처리기 ... 270
10-2 define ... 271
함수와 유사한 매크로 정의 ... 273
10-3 error ... 275
10-4 include ... 275
10-5 조건적 컴파일 지시자 ... 276
if, else, elif, endif ... 276
ifdef와 ifdef ... 280
10-6 undef ... 281
10-7 defined 사용 ... 281
10-8 line ... 282
10-9 pragma ... 283
10-10 과 선행처리기 연산자 ... 283
10-11 미리 정의된 매크로 이름 ... 285
10-12 주석 ... 286
한 라인 주석 ... 287
Part 2 C++ ... 288
제11장 C++의 개요 ... 290
11-1 C++의 기원 ... 290
11-2 객체 지향 프로그래밍이란 ... 292
캡슐화 ... 293
다형성 ... 294
상속성 ... 295
11-3 C++의 기초 ... 295
간단한 C++ 프로그램 ... 296
입출력(I/O) 연산자 자세히 살펴보기 ... 299
국소 변수 선언하기 ... 300
디폴트 -int 규칙의 깨짐 ... 302
데이터 형 bool ... 303
11-4 전통 C++과 현대 C++ ... 300
새로운 C++헤더들 ... 305
네임스페이스 ... 307
구식 컴파일러로의 작업 ... 307
11-5 C++ 클래스의 소개 ... 308
11-6 함수 중복 ... 313
11-7 연산자 중복 ... 316
11-8 상속성 ... 317
11-9 생성자와 소멸자 ... 323
11-10 C++ 키워드 ... 328
11-11 C++ 프로그램의 일반적인 형식 ... 329
제12장 클래스와 객체 ... 330
12-1 클래스 ... 330
12-2 구조체와 클래스 ... 334
12-3 공용체와 클래스 ... 336
익명 공용체 ... 338
12-4 프렌드 함수 ... 339
12-5 프렌드 클래스 ... 345
12-6 인라인 함수 ... 346
클래스 내에서의 인라인 함수 정의 ... 349
12-7 매개 변수화된 생성자 ... 350
하나의 매개 변수를 가진 생성자 - 특별한 경우 ... 353
12-8 정적 클래스 구성원 ... 354
정적 자료 구성원 ... 354
정적 멤버 함수 ... 359
12-9 생성자와 소멸자의 실행 ... 362
12-10 범위 지정 연산자 ... 364
12-11 중첩 클래스 ... 365
12-12 지역 클래스 ... 365
12-13 함수에 객체 전달 ... 366
12-14 객체 반환 ... 369
12-15 객체 할당 ... 371
제13장 배열·포인터·참조·동적 할당 연산자 ... 372
13-1 객체의 배열 ... 372
초기화와 비초기화 배열 생성 ... 375
13-2 객체에 대한 포인터 ... 376
13-3 C++ 포인터의 형 확인 ... 379
13-4 this 포인터 ... 380
13-5 파생형에 대한 포인터 ... 382
13-6 클래스 구성원에 대한 포인터 ... 385
13-7 참조 ... 388
참조 매개 변수 ... 388
객체에 참조 전달 ... 393
참조 반환하기 ... 394
독립 참조 ... 395
파생 형에 대한 참조 ... 397
참조에서의 제약 ... 397
13-8 스타일 ... 397
13-9 C++의 동적 할당 연산자 ... 398
할당 기억장소의 초기화 ... 400
배열 할당 ... 401
객체 할당 ... 403
nothrow로 대체 ... 408
new의 배치 형식 ... 409
제14장 함수중복·복사본 생성자·디폴트 인자 ... 410
14-1 함수 중복 ... 410
14-2 생성자 중복 ... 412
유연성 확보를 위한 생성자 중복 ... 413
초기화와 비초기화 객체의 동시 허용 ... 415
14-3 복사본 생성자 ... 417
14-4 중복된 함수의 주소 찾기 ... 422
14-5 시대에 뒤떨어진 중복 ... 423
14-6 디폴트 함수 인자들 ... 424
디폴트 인자들과 중복 ... 429
디폴트 인자들의 바른 사용 ... 431
14-7 함수 중복과 모호성 ... 431
제15장 연산자 중복 ... 436
15-1 멤버 연산자 함수 생성 ... 437
증가·감소 연산자의 선행·후행 형식 생성 ... 442
단축 연산자의 중복 ... 443
연산자 중복에 대한 제약 조건 ... 444
15-2 프렌드 함수를 이용한 연산자 중복 ... 445
++ 또는 -- 중복을 위한 프렌드 사용 ... 447
프렌드 연산자 함수의 융통성 ... 450
15-3 new와 delete 중복 ... 453
배열을 위한 new와 delete의 중복 ... 459
new와 delete의 nothrow 버전 중복 ... 462
15-4 특수 연산자 중복 ... 463
[]의 중복 ... 463
()의 중복 ... 467
-〉의 중복 ... 470
15-5 콤마 연산자의 중복 ... 471
제16장 상속 ... 474
16-1 기본 클래스의 접근 제어 ... 474
16-2 상속성과 보호 구성원 ... 477
기본 클래스의 보호 상속성 ... 482
16-3 복수의 기본 클래스 상속 ... 483
16-4 생성자와 소멸자의 상속성 ... 484
생성자와 소멸자 함수의 실행 시기 ... 485
기본 클래스 생성자에 매개 변수 전달 ... 489
16-5 접근 인가 ... 494
16-6 가상 기본 클래스 ... 497
제17장 가상 함수와 다형성 ... 502
17-1 가상 함수 ... 502
기본 클래스 참조를 통한 가상 함수 호출 ... 506
17-2 가상 속성은 상속된다 ... 507
17-3 가상 함수는 계층적이다 ... 509
17-4 순수 가상 함수 ... 513
추상 클래스 ... 515
17-5 가상 함수 사용 ... 515
17-6 전기·후기 바인딩 ... 519
제18장 템플릿 ... 520
18-1 일반 함수 ... 520
두 개의 일반 형을 가진 함수 ... 523
일반 함수의 명백한 중복 ... 524
함수 템플릿의 중복 ... 527
템플릿 함수와 표준변수의 사용 ... 528
일반 함수의 제약사항들 ... 529
18-2 일반 함수의 적용 ... 530
generic 정렬 ... 530
배열 정리 ... 532
18-3 generic 클래스 ... 535
두 개의 generic 자료 형의 예 ... 539
템플릿 클래스의 적용 - generic 배열 클래스 ... 540
generic 클래스에서 Non-type 인자의 사용 ... 542
템플릿 클래스와 함께 디폴트 인자의 사용 ... 544
명백한 클래스 특정화 ... 546
18-4 ypename과 키워드 export ... 548
18-5 템플릿의 힘 ... 549
제19장 예외 처리 ... 550
19-1 예외 처리의 기초 ... 550
클래스 형의 탐지 ... 557
여러 개의 catch문 사용 ... 559
19-2 파생 클래스의 예외 처리 ... 560
19-3 예외 처리에서의 선택사양 ... 562
모든 예외들의 감지 ... 562
예외에서의 제약 ... 565
예외 다시 옮기기 ... 567
19-4 terminate()와 unexpected()의 이해 ... 568
terminate와 unexpected 처리기의 설정 ... 569
19-5 uncaught_exception() 함수 ... 571
19-6 exception과 bad_exception 클래스들 ... 572
19-7 예외 처리의 적용 ... 572
제20장 C++ 입출력 시스템의 기초 ... 574
20-1 구형 대 신형 C++ 입출력 ... 575
20-2 C++ 시스템 ... 575
20-3 C++ 스트림 클래스들 ... 576
C++의 기정(predefined)된 스크림들 ... 577
20-4 포맷화된 입출력 ... 578
ios 멤버들을 이용한 포맷팅 ... 578
포맷 플래그의 설정 ... 580
포맷 플래그의 해제 ... 581
setf()의 중복된 형태 ... 582
포맷팅 플래그 시험하기 ... 584
모든 플래그 설정 ... 586
width(), precision(), fill()의 사용 ... 587
포맷 입출력에 조작자 사용하기 ... 589
20-5 ≪와≫의 중복 ... 593
사용자 정의 삽입자의 생성 ... 593
사용자 정의 추출자 생성 ... 600
20-6 사용자 정의 조작자 함수 생성 ... 604
제21장 C++ 파일 입출력 ... 608
21-1 〈fstream〉과 file 클래스 ... 608
21-2 파일 열기와 닫기 ... 609
21-3 텍스트 파일 읽고 쓰기 ... 612
21-4 서식이 지정되지 않은 이진 입출력 ... 615
문자 대 바이트 ... 615
put()과 get() ... 616
read()와 write() ... 618
21-5 get()의 또 다른 형식들 ... 621
21-6 getline() ... 622
21-7 EOF 탐색 ... 624
21-8 ignore() 함수 ... 627
21-9 peek()와 putback() ... 628
21-10 flush() ... 628
21-11 랜덤 액세스 ... 629
현재 파일 위치 구하기 ... 633
21-12 입출력 상태 ... 634
21-13 사용자 지정 입출력 및 파일 ... 637
제22장 런타임 형식 ID와 캐스트 연산자 ... 640
22-1 런타임 형식 식별 ... 640
typeid는 템플릿 클래스에 적용될 수 있다 ... 650
22-2 캐스트 연산자 ... 652
22-3 dynamic_cast ... 652
템플릿 클래스와 함께 dynamic_cast 사용하기 ... 659
const_cast ... 661
static_cast ... 664
reinterpret_cast ... 664
제23장 네임스페이스, 변환 함수와 다른 고급 주제들 ... 666
23-1 네임스페이스 ... 666
네임스페이스란 무엇인가? ... 667
using ... 671
unnamed 네임스페이스 ... 673
네임스페이스 옵션 ... 675
23-2 std 네임스페이스 ... 677
23-3 변환 함수 작성 ... 680
23-4 const 멤버 함수와 mutable ... 684
23-5 volatile 멤버 함수 ... 687
23-6 명시적 생성자 ... 687
23-7 멤버 초기화 문법 ... 689
23-8 asm 키워드 사용 ... 695
23-9 연결 규격 ... 697
23-10 배열 기반 입출력 ... 698
배열 기반 클래스 ... 699
배열 기반 출력 스트림 작성 ... 699
배열을 입력으로 사용 ... 701
입출력 배열 기반 스트림 ... 703
동적 배열 사용 ... 704
배열 기반 스트림과 함께 이진 입출력 사용 ... 706
23-11 C와 C++ 사이의 차이점 요약 ... 707
제24장 표준 템플릿 라이브러리 ... 710
24-1 STL 개요 ... 711
컨테이너 ... 711
알고리즘 ... 711
반복자 ... 712
기타 STL 원소 ... 713
24-2 컨테이너 클래스 ... 714
24-3 동작의 일반 이론 ... 715
24-4 벡터 ... 717
반복자를 통한 벡터 액세스 ... 722
벡터에 원소 삽입·삭제 ... 724
벡터에 클래스 객체 저장하기 ... 726
24-5 리스트 ... 728
end() 함수 이해 ... 733
push_front() 대 push_back() ... 735
리스트 정렬 ... 736
두 리스트 병합 ... 737
리스트에 클래스 객체 저장 ... 739
24-6 맵 ... 742
맵에 클래스 객체 저장 ... 747
24-7 알고리즘 ... 749
개수 세기 ... 750
원소 제거 및 교체 ... 755
시퀀스 순서 바꾸기 ... 758
시퀀스 변환 ... 759
24-8 함수 객체 사용 ... 761
단항 및 이항 함수 객체 ... 761
기본 제공 함수 객체 사용 ... 761
함수 객체 작성 ... 765
바인더 사용 ... 768
24-9 string 클래스 ... 771
string의 멤버 함수들 ... 776
컨테이너로서의 문자열 ... 782
문자열을 다른 컨테이너에 넣기 ... 784
24-10 STL에 대한 마지막 고려 ... 785
Part 3 표준 함수 라이브러리 ... 786
제25장 C기반 입출력 함수 ... 788
clearerr ... 789
fclose ... 789
feof ... 790
ferror ... 790
fflush ... 791
fgetc ... 791
fgetpos ... 792
fgets ... 792
fopen ... 793
fprintf ... 795
fputc ... 795
fputs ... 796
fread ... 796
freopen ... 797
fscanf ... 797
fseek ... 798
fsetpos ... 799
ftell ... 799
fwrite ... 800
getc ... 800
getchar ... 801
gets ... 801
perror ... 802
printf ... 802
putc ... 805
putchar ... 806
puts ... 806
remove ... 806
rename ... 807
rewind ... 807
scanf ... 807
setbuf ... 811
setvbuf ... 812
sprintf ... 812
sscanf ... 813
tmpfile ... 813
tmpnam ... 814
ungetc ... 814
vprintf·vfprintf·vsprintf ... 815
제26장 문자열과 문자 함수 ... 816
isalnum ... 817
isalpha ... 817
iscntrl ... 817
isdigit ... 818
isgraph ... 818
islower ... 818
isprint ... 819
ispunct ... 819
isspace ... 819
isupper ... 820
isxdigit ... 820
memchr ... 820
memcmp ... 821
memcpy ... 821
memmove ... 822
memset ... 822
strcat ... 823
strchr ... 823
strcmp ... 824
strcoll ... 824
strcpy ... 825
strcspn ... 825
strerror ... 825
strlen ... 826
strncat ... 826
strncmp ... 827
strncpy ... 827
strpbrk ... 828
strrchr ... 828
strspn ... 828
strstr ... 829
strtok ... 829
strxfrm ... 830
tolower ... 830
toupper ... 831
제27장 수학 함수 ... 832
acos ... 833
asin ... 833
atan ... 834
atan2 ... 834
ceil ... 834
cos ... 835
cosh ... 835
exp ... 836
fabs ... 836
floor ... 836
fmod ... 837
frexp ... 837
ldexp ... 838
log ... 838
log10 ... 838
modf ... 839
pow ... 839
sin ... 840
sinh ... 840
sqrt ... 840
tan ... 841
tanh ... 841
제28장 시간·날짜·지역화 함수 ... 842
asctime ... 843
clock ... 843
ctime ... 844
difftime ... 844
gmtime ... 845
localeconv ... 845
localtime ... 846
mktime ... 847
setlocale ... 847
strftime ... 848
time ... 849
제29장 동적 할당 함수 ... 850
calloc ... 851
free ... 851
malloc ... 852
realloc ... 852
제30장 유틸리티 함수 ... 854
abort ... 855
abs ... 855
assert ... 855
atexit ... 856
atof ... 856
atoi ... 857
atol ... 857
bsearch ... 858
div ... 859
exit ... 859
getenv ... 860
labs ... 860
ldiv ... 861
longjmp ... 861
mblen ... 862
mbstowcs ... 862
mbtowc ... 863
qsort ... 863
raise ... 864
rand ... 865
setjmp ... 865
signal ... 865
srand ... 866
strtod ... 867
strtol ... 867
strtoul ... 868
system ... 869
va_arg·va_start·va_end ... 869
wcstombs ... 870
wctomb ... 871
제31장 와이드 문자 함수 ... 872
31-1 와이드 문자 분류 함수 ... 873
31-2 와이드 문자 입출력 함수 ... 876
31-3 와이드 문자 문자열 함수 ... 876
31-4 와이드 문자 문자열 변환 함수 ... 877
31-5 와이드 문자 배열 함수 ... 879
31-6 멀티바이트·와이드 문자 변환 함수 ... 880
Part 4 C++ 표준 클래스 라이브러리 ... 882
제32장 C++의 표준 I/O 클래스 ... 884
32-1 I/O 클래스 ... 884
32-2 I/O 헤더 ... 887
32-3 포맷 플래그와 I/O 조작자 ... 887
32-4 다양한 자료형 ... 889
streamsize와 streamoff형 ... 889
streampos와 wstreampos형 ... 890
pos_type과 off_type형 ... 890
openmode형 ... 890
iostate형 ... 890
seekdir형 ... 891
failure 클래스 ... 891
32-5 ≪와≫ 연산자 중복 ... 892
32-6 범용의 I/O 함수 ... 892
bad ... 892
clear ... 893
eof ... 893
exceptions ... 893
fail ... 894
fill ... 894
flags ... 894
flush ... 895
fstream, ifstream, ofstream ... 895
gcount ... 896
get ... 896
getline ... 898
good ... 898
ignore ... 898
open ... 899
peek ... 900
precision ... 900
put ... 901
putback ... 901
rdstate ... 901
read ... 902
readsome ... 902
seekg와 seekp ... 903
setf ... 904
setstate ... 905
str ... 905
stringstream, istringstream, ostringstream ... 905
sync_with_stdio ... 907
tellg와 tellp ... 907
unsetf ... 908
width ... 908
write ... 909
제33장 STL 컨테이너 클래스 ... 910
33-1 컨테이너 클래스 ... 911
bitset
더보기 닫기