<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

Similar documents
강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상 2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - Chap12-OOP.ppt

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

Microsoft PowerPoint - additional01.ppt [호환 모드]

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

세계 비지니스 정보

Microsoft PowerPoint - CSharp-10-예외처리


CONTENTS.HWP

INDUS-8.HWP

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍


PowerPoint Presentation

PowerPoint Presentation

슬라이드 1

00-1표지

Slide 1

Microsoft PowerPoint - additional03.ppt [호환 모드]

경제통상 내지.PS

°æÁ¦Åë»ó³»Áö.PDF

우루과이 내지-1

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - additional08.ppt [호환 모드]

슬라이드 1

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

Slide 1

설계란 무엇인가?

영암군 관광종합개발계획 제6장 관광(단)지 개발계획 제7장 관광브랜드 강화사업 1. 월출산 기( 氣 )체험촌 조성사업 167 (바둑테마파크 기본 계획 변경) 2. 성기동 관광지 명소화 사업 마한문화공원 명소화 사업 기찬랜드 명소화 사업 240

C++ Programming

C++ Programming

[96_RE11]LMOs(......).HWP

Microsoft PowerPoint - 09-C++-7-Template.pptx

PowerPoint Template

PowerPoint Presentation

<C1A4C3A5BFACB1B D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>

17장 클래스와 메소드

C++ Programming

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

JVM 메모리구조


Chapter 6 Objects and Classes

Microsoft PowerPoint - Chapter 6.ppt

(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])

À̶õ°³È²³»Áö.PDF

Microsoft PowerPoint - additional07.ppt [호환 모드]

설계란 무엇인가?

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

C++ Programming

<4D F736F F F696E74202D2031C1D6C2F72D31C2F7BDC32028B0ADC0C7C0DAB7E D20C7C1B7CEB1D7B7A1B9D6BEF0BEEE20B0FAB8F1BCD2B

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - Chapter 1-rev

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

통신1310_01-도비라및목차1~9

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍

*통신1802_01-도비라및목차1~11

Microsoft PowerPoint 자바-기본문법(Ch2).pptx


PowerPoint Presentation

C++ Programming

Slide 1

표1

°æÁ¦Àü¸Á-µ¼º¸.PDF

C++ 기본문법 정리

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

israel-내지-1-4

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - chap06-5 [호환 모드]

1 1 제 1 장 C# 의개요 1.1 소개 1.2 콘솔 / 윈폼애플리케이션 C# 개발환경 콘솔애플리케이션 윈폼애플리케이션 C# 프로그램실행과정 1.3 기본특징 자료형 연산자 배열 스트

Microsoft PowerPoint - chap06-2pointer.ppt

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

금오공대 컴퓨터공학전공 강의자료

PowerPoint Presentation

Microsoft PowerPoint - Chapter 10.ppt

프입2-강의노트-C++배경

PowerPoint Presentation

Microsoft PowerPoint - 2강

쉽게 풀어쓴 C 프로그래밍

11장 포인터

설계란 무엇인가?

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 중간착취의 금지 41 - 대판 , 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 , 2002도3883 [남녀고용평등법위

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

윤성우의 열혈 TCP/IP 소켓 프로그래밍

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

PowerPoint Template

설계란 무엇인가?

Microsoft PowerPoint - additional-11_13l.ppt [호환 모드]

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

*통신1604_01-도비라및목차1~12

PowerPoint Presentation

Microsoft PowerPoint - chap10-함수의활용.pptx

1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include <cstdio> int ivar; double dvar; char str[20]; printf("int, dou

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Transcription:

저 자 약 력이상정순천향대학교컴퓨터학부교수, sjlee@sch.ac.kr 조영일수원대학교컴퓨터학과교수, yicho@suwon.ac.kr 김은성순천향대학교전기전자공학과교수, eskim@sch.ac.kr 박종득공주대학교컴퓨터공학부교수, pjd@kongju.ac.kr

C++ 언어는 C 에 C 언어의증가연산자 ++ 를덧붙인 C++ 라는이름이의미하는바와같이 C 언어의문법을대부분그대로사용하면서객체지향프로그래밍기법을추가한 C 언어의확장판으로개발된언어이다. 객체지향프로그래밍은프로그램을단순히자료의처리흐름으로보는것이아니라인간이사물을생각하고이해하는방식과유사하게서로연관된객체들간의관계로정의하고프로그래밍하는기법이다. 지금까지객체지향프로그래밍을지원하는많은프로그래밍언어들이개발되었고, Java나 C# 등도이들중의하나지만, 많은객체지향프로그래밍언어들중에서 C++ 언어가가장풍부한기능을제공하면서널리사용되고있다. C 머 O 리 말 E S 이책은기존의 C 언어를학습한후에 C++ 언어를배우고자하는독자들을위하여만들어진책이다. 따라서기존의 C 언어에포함된중복된내용등은배제하고 C 언어에서확장된객체지향을지원하는개념및내용들을중심으로책의내용을구성하였다. C++ 언어는 C 언어의장점과특징을그대로유지하면서객체지향프로그래밍을위해다양하고풍부한기능을제공하는언어이기때문에다소어렵고처음접근하기에는쉽지않다. 따라서이책에서는언어의문법이나복잡한사양등의장황한설명은피하고간결한예제를중심으로해당기능의특징을빠르고쉽게이해할수있도록구성하였다. 그러나간결한예제는이해가쉬운반면에구체적인의미나내용을갖는완성된프로그램은아니어서프로그래밍활용기법을배우기에는다소부족하다. 따라서독자들의프로그래밍활용능력을높이고자각단원의끝에서는앞에서설명된 C++ 기능및예제들을응용한완성된프로그램을제시하였다. 이책에서소개된예제및응용예들은한단원에서끝나는것이아니라새로운단원에서새로운 C++ 기능을배울때앞의내용을보완하고확장된예를제시함으로써독자들이앞의내용과단절되지않고점진적으로추가된기능을학습하고활용할수있도록하였다. 각단원의끝에서는앞에서배운 C++ 언어의이해를측정하고프로그래밍연습을위해연습문제를제시하였다. 또한응용예를소개한후에는이를확장하고활용하는문제도제시한다. - iii -

프로그래밍 이책은모두 10개의단원으로구성되었다. 1장과 2장은 C++ 를시작하는소개단원이다. 1장에서는객체지향프로그래밍의기본개념을소개하고, 2장에서는객체지향프로그래밍기법을제외하고 C 언어에추가된기능을소개한다. 3장과 4장에서는객체지향프로그래밍을시작하는단원으로객체를정의하는클래스의선언과클래스의초기화를배운다. 5장, 6장, 7장은객체와클래스의고급기능으로연산자오버로딩, 클래스의상속, 템플릿등의개념과활용방법을배운다. 마지막으로 8장, 9장, 10장등에서는입출력, 표준템플릿라이브러리, 예외처리등을소개한다. 끝으로이책이 C++ 언어를배우고자하는독자들에게쉽고유익한길잡이가되었으면하는바람을가지면서이책이출간되기까지지원을아끼지않은 ( 주 ) 사이텍미디어관계자여러분께감사드린다. 2009년 2월저자씀 - iv -

프로그래밍 제1장 C++ 언어와객체지향프로그래밍소개 1 1.1 C++ 언어의특징 2 1.2 객체지향프로그래밍개발배경 3 1.3 객체지향프로그래밍기본개념 5 z 객체 5 x 클래스 6 c 추상자료형 7 v 상속 7 b 다형성 8 C O E S 제2장 C 언어의확장, C++ 11 2.1 스트림입출력연산자 12 2.2 변수, 부울자료형, 형변환 14 z 블록내변수선언 14 x 변수의사용범위지정연산자 15 c bool 자료형 16 v 명시적인형변환 17 2.3 열거형, 구조체, 공용체 19 2.4 함수 20 z 함수오버로딩 20 x 디폴트매개변수 23 c 인라인함수 25 2.5 참조자 26 z 참조자매개변수전달 28 x 참조자의반환 30 2.6 동적메모리할당과해제 31 2.7 이름공간 34 z using 선언문 36 x 표준라이브러리이름공간 38 2.8 응용예 39 z 성적관리프로그램버전 1 39 연습문제 47 - v -

프로그래밍 제3장클래스와객체 51 3.1 클래스정의 52 z 클래스선언형식 52 x 클래스명변수명1, 변수명2,...; 52 c 클래스멤버함수의선언 54 v 클래스멤버함수의외부정의 58 3.2 객체자료 61 z 객체복사 61 x 객체매개변수전달 63 c 객체반환 65 v 객체배열 67 b 객체포인터 68 n 객체참조자 70 3.3 구조체와공용체 72 3.4 응용예 74 z 성적관리프로그램버전 2 74 x 집합프로그램 79 연습문제 85 제4장클래스의초기화, 프렌드함수 89 4.1 생성자와소멸자 90 z 생성자 90 x 디폴트생성자 96 c 소멸자 98 v 디폴트소멸자 102 4.2 복사생성자 105 z 객체생성시 105 x 함수의매개변수로전달시복사생성자 109 c 함수의반환값으로객체를반환 112 4.3 프렌드함수 113 4.4 정적멤버 116 4.5 자기참조 119 4.6 응용예 123 - vi -

z 성적관리프로그램버전 3 123 x 연결리스트프로그램 129 연습문제 135 제5장연산자오버로딩 137 5.1 연산자오버로딩 138 z 이항연산자오버로딩 140 x 단항연산자오버로딩 145 C O E S 5.2 프렌드연산자함수 153 5.3 형변환함수 159 5.4 string 클래스 161 5.5 응용예 164 z 집합프로그램버전 2 164 x 이진수표현응용예 171 연습문제 179 제6장클래스의상속 181 6.1 파생클래스 182 z 보호부분의상속 185 6.2 생성자, 소멸자호출순서 188 z 베이스클래스생성자매개변수전달 190 6.3 가상함수 193 z 순수가상함수와추상클래스 195 6.4 다중상속 198 6.5 가상베이스클래스 204 6.6 응용예 206 z 성적관리프로그램버전 4 206 x 집합프로그램버전 3 213 연습문제 222 제 7 장템플릿 225 7.1 템플릿함수 226 z 템플릿함수정의및생성 226 - vii -

프로그래밍 x 템플릿함수의특수화 228 c 템플릿함수오버로딩 230 7.2 템플릿클래스 231 z 템플릿클래스정의및생성 231 x 템플릿클래스의특수화 237 c 디폴트템플릿매개변수 239 v 템플릿클래스의오버로딩 240 b 템플릿클래스의상속 241 7.3 응용예 245 z 집합프로그램버전 4 245 연습문제 253 제8장표준및파일입출력 255 8.1 스트림입출력 256 8.2 표준출력 258 z 출력클래스 ostream 258 x 사용자정의출력 259 8.3 표준입력 262 z 입력클래스 istream 262 x 사용자정의입력 263 8.4 형식지정입출력 266 z 입출력조절자 266 x setf() 와 unsetf() 함수 269 c 그밖의함수들 : width(), precision(), fill() 273 v 그밖의입출력조절자 276 b 사용자정의조절자 278 8.5 파일입출력 280 z 파일의개방 (open) 및종결 (close) 280 x 랜덤액세스 285 8.6 응용예 288 z 이진수표현프로그램버전 2 288 x 성적관리프로그램버전 5 292 연습문제 301 - viii -

제9장표준템플릿라이브러리 305 9.1 표준템플릿라이브러리컴포넌트 306 9.2 컨테이너 306 z 순차컨테이너 307 9.3 반복자 311 9.4 연상컨테이너 314 z 세트와멀티세트 314 x 맵과멀티맵 317 C O E S 9.5 알고리즘 319 z 범위 (ranges) 322 x 다중범위 323 연습문제 327 제10장예외처리 329 10.1 예외상황발생과처리 330 10.2 예외처리의예 333 z 다수의 try() 와 catch() 가있는경우 337 x 여러개의 catch 블록을사용하는경우 339 c 중첩 try 블록 343 v 예외를다시사출 345 10.3 응용예 347 z 스택의경계검사예 347 연습문제 351 찾아보기 352 - ix -