More Effective C++

Similar documents
초보자를 위한 C# 21일 완성

초보자를 위한 C++

歯PLSQL10.PDF

초보자를 위한 ASP.NET 2.0

초보자를 위한 C++

초보자를 위한 자바 2 21일 완성 - 최신개정판

chap10.PDF

Windows 시스템 프로그래밍 제3판

13 2 ( 25 ) Korean J Med Hist Dec 2004 ISSN X * ( ) ( ) ( ). 1) ( ) ( ) ( ) ( ) ( ) 2) ( ) 3) 1990 ( ) 4) * 1) ( ) C

중 국 6 대 패 션 시 장 조 사 보 고 서 < 2004 년 상 해 10 대 매 장 10대 패 션 제 품 의 브 랜 드 시 장 점 유 뮬 > 제 품 브 랜 드 시 장 점 유 율 제 품 브 랜 드 시 장 점유 율 C O N C H P LA Y B O Y

歯FFF01379.PDF

歯320.PDF

1

SIGPLwinterschool2012

<4D F736F F D20B0D4C0CCC6AEBFFEC0CC5FBFB9B9AEC7D8BCAE5FB7B9BDBC33342D36362E646F63>

1991 Dunedin Marathon

SRC PLUS 제어기 MANUAL

소프트웨어 개발의 성공 열쇠 - 오브젝트 디자인

ad hwp

Categoryreport

Frank Landrey Invitational Dates: 10/05-10/06, 2009 Round: 3 FINAL RESULTS * Individual Par-Yardage: Fin. Top 20 Teams Scores 1 Richmond, Univ


BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

百 눼신 시 " 가.인도의 대표적 섬유,패션 제품 l) 카펫 면과 비단으로 만든 카펫은 수세기 동안 인기있는 수출 품옥이었다.무굴시대의 디 자인 감각으로 완성된 플러시 비단카펫은 오늘날까지 관광객에게 많은 사랑을 받는 제품이다.인도산 수직 매듭 양탄자 두리(Dur ie

초보자를 위한 ASP.NET 21일 완성

K&R2 Reference Manual 번역본

ShaderX2: DirectX 9 셰이더 프로그래밍 팁 & 트릭

특허청구의 범위 청구항 1 앵커(20)를 이용한 옹벽 시공에 사용되는 옹벽패널에 있어서, 단위패널형태의 판 형태로 구성되며, 내부 중앙부가 후방 하부를 향해 기울어지도록 돌출 형성되어, 전면이 오 목하게 들어가고 후면이 돌출된 결속부(11)를 형성하되, 이 결속부(11

종사연구자료-이야기방 hwp

목 차 국회 1 월 중 제 개정 법령 대통령령 7 건 ( 제정 -, 개정 7, 폐지 -) 1. 댐건설 및 주변지역지원 등에 관한 법률 시행령 일부개정 1 2. 지방공무원 수당 등에 관한 규정 일부개정 1 3. 경력단절여성등의 경제활동 촉진법 시행령 일부개정 2 4. 대

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

Bchvvhv[vhvvhvvhchvvhvvhvvhvvhvvgvvgvv}vvvgvvhvvhvvvhvvhvvhvvvbbhvvhvvvgvvgvvhvvhvvhv}hv,.. Bchvvhv[vhvvhvvhvvhvvbbhvvhvvhvvvhvvhvvgvvgvv}vvgvvhvvvhvv

h99-37.PDF

2013 MID-AMERICA REGION MASTERS CHAMPIONSHIPS & 33rd ANNUAL ROCKY MOUNTAIN MASTERS GAMES COLORADO STATE UNIVERSITY, FT. COLLINS, CO AUGUST 24 & 25, 20

Race Date August 03, 2019 State Street Mile Age Group Results Heat 1 - Masters Female First Place M/F Winners Place Name Team Age Bib No Overall Time

ADU


02 C h a p t e r Java

1. 화섬산업의 개요 1.1 화섬산업의 륵성 화 섬산 업 의 산 업 적 특 성 화섬산업은 원사,원면 둥 기초소재를 생산하는 섬유산 업의 핵심산업으로 고용창출효과와 고부가가치를 실현할 수 있음 O 세계적으로 독일,이태리,일본 등 선진국을 중심으로 M E(마이크로 일렉트

slide2

제 9 도는 6제어항목의 세팅목표의 보기가 표시된 레이더 챠트(radar chart). 제 10 도는 제 6 도의 함수블럭(1C)에서 사용되는 각종 개성화 함수의 보기를 표시하는 테이블. 제 11a 도 제 11c 도까지는 각종 조건에 따라 제공되는 개성화함수의 변화의

thesis

<BCFBC0BABFAD28C3D6C1BE292E687770>

Microsoft PowerPoint - lecture2.ppt

카테고리 시리즈 명 SME 컨텐트 에센스 심화 컨텐트 탬플릿 평가 대 분 류 중 분 류 개수 평균 시간 개수 총 시간 개수 총 시간 유 형 개수 유무 경영일반 경영기법 Performance Management를 위한 전략적 성과면담 김정일 20 0:43:09 8 6:3

DocsPin_Korean.pages

I 문학과 우리 사회 눈 은 다가오는 계절인 봄의 생명력과 연결되어 작품 전체의 분위 기를 주도하고 있다. 1. 문학과 인접 분야 바탕 학습 확인 문제 본문 009쪽 01 4 문학은 음악, 미술 등과 같이 예술의 한 갈래로, 다른 예술 갈래와 달리 언

Samford Top 10 Outdoor Performance Best List.xlsx

강의10

(72) 발명자 서진교 경기 용인시 수지구 풍덕천2동 1167 진산마을 삼성5차아파트526동 1004호 조필제 경기 용인시 풍덕천동 유스빌 401호 - 2 -

*BA_01

PCServerMgmt7

< DB9CCB7A1B1B3C0B020C3BCC7E8B0FC20C0CCC0FC20B1B8C3E0C0BB20C0A7C7D120BCB3B0E820BFACB1B820B9D720BFEEBFB520C7C1B7CEB1D7B7A520B0B3B9DF2E687770>

Beginning Linux Programming 제3판

사상체질의학회지

歯 PDF

(72) 발명자 김창욱 경기 용인시 기흥구 공세로 , (공세동) 박준석 경기 용인시 기흥구 공세로 , (공세동) - 2 -


I 154

( )박용주97.PDF

07 자바의 다양한 클래스.key

레이아웃 1

Ⅰ. 머리말 각종 기록에 따르면 백제의 초기 도읍은 위례성( 慰 禮 城 )이다. 위례성에 관한 기록은 삼국사기, 삼국유사, 고려사, 세종실록, 동국여지승람 등 많은 책에 실려 있는데, 대부분 조선시대에 편 찬된 것이다. 가장 오래된 사서인 삼국사기 도 백제가 멸망한지

PowerPoint 프레젠테이션

Cover Story 시간은 하루 24시간이지만 시간의 질, 그리고 체감되는 양은 사람마다 다를 것입니다. 시간에 쫓기면서 살아서는 안되겠죠. 하지만 시간을 능동적으로 운용하는 현명함, 정말 필요한 때입니다. 2013년 첫 번째로 선보이는 사보에서는 Time 을 주제로

<303020BDC7BCD5C0C7B7E1BAF1BAB8C0E5BAB8C7E85FB8F1C2F72E687770>

*º¹ÁöÁöµµµµÅ¥-¸Ô2Ä)

表紙(化学)

루앙 의 공포 *주민들은 어두운 방 안에서 온갖 지혜와 힘이 도움이 되지 않는 천재지변이나 살인적인 대혼란이 가져다주는 엄청난 공포에 사로잡혀 있었다. 이와 같은 느낌은 기존의 질서가 뒤집 히거나, 더 이상 안전이 보장되지 않거나, 인간의 법이나 자연의 법칙이 보호해

Interstage5 SOAP서비스 설정 가이드

歯IC-706.PDF

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

°ø±â¾Ð±â±â

03장.스택.key

À½¾ÇÁöµµ¼�¥³-14~261S

RONBO's 1980 Player Appearance Grid Atlanta Braves 04/09 04/11 04/12 04/13 04/14 04/15 04/17 04/18 04/19 04/20 04/22 04/23 04/24 04/25 Opponent at CIN

untitled

44-4대지.07이영희532~

DV690-N_KOR_ indd

1) 음운 체계상의 특징 음운이란 언어를 구조적으로 분석할 때, 가장 작은 언어 단위이다. 즉 의미분화 를 가져오는 최소의 단위인데, 일반적으로 자음, 모음, 반모음 등의 분절음과 음장 (소리의 길이), 성조(소리의 높낮이) 등의 비분절음들이 있다. 금산방언에서는 중앙

<%DOC NAME%> User Manual

분석결과 Special Edition 녹색건물의 가치산정 및 탄소배출 평가 이슈 서 민간분야의 적극적인 참여 방안의 마련이 필요하다. 또한 우리나라는 녹색건축의 경제성에 대한 검증에 대 한 연구가 미흡한 실정이다. 반면, 미국, 영국, 호주 등은 민간 주도로 녹색건축물

<B5B5BCADB0FCB0FA20C0CEB9B02DBFB9BCFA2E707562>

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

지역사회 공공도서관 발전방향에 관한 연구

歯jeong-shik.PDF

HAWKS RIDGE GUN CLUB 1000 YARD 3/30/2019 Match 1 FACTORY GUN Relay 1 Name Bench Group Score X Del Denny Brent Milton 2 4 -on Avery Thompso

334 退 溪 學 과 儒 敎 文 化 第 55 號 角 說 에서는 뿔이 난 말과 고양이라는 기형의 동물을 소재로 하여 당대 정치 상 황을 비판하였고, 白 黑 難 에서는 선과 악을 상징하는 색깔인 白 과 黑 이 서로 벌이 는 문답을 통하여 옳고 그름의 가치관이 전도된 현실세

기사스크랩 (160504).hwp

생산부 2년이상 ~ 10년 미만 학력 무관 경기도 안성/천안 인센티브제, 장기근속 포 상(해외여행), 기숙사제 공, 사내식당(조,중,석식) 휴가비, 경조사비 <우대사항> - 압출기계 관련 경력자 우대 <직무내용> - 플라스틱 Compound 압출생산 <우대사항> - 압

제 1 강 희망의 땅, 알고리즘

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

산림병해충 방제규정 4. 신문 방송의 보도내용 등 제6 조( 조사지역) 제5 조에 따른 발생조사는 다음 각 호의 지역으로 구분하여 조사한다. 1. 특정지역 : 명승지 유적지 관광지 공원 유원지 및 고속국도 일반국도 철로변 등 경관보호구역 2. 주요지역 : 병해충별 선단

Microsoft PowerPoint - PL_03-04.pptx

삼외구사( 三 畏 九 思 ) 1981년 12월 28일 마산 상덕법단 마산백양진도학생회 회장 김무성 외 29명이 서울 중앙총본부를 방문하였을 때 내려주신 곤수곡인 스승님의 법어 내용입니다. 과거 성인께서 말씀하시길 道 를 가지고 있는 사람과 어울려야만 道 를 배울 수 있

A 0 D5-a (XQD Card Type) D5-b (CF Card Type)

김기중 - 방송통신심의위원회 인터넷 내용심의의 위헌 여부.hwp

A 001~A 036

C# Programming Guide - Types

Crystal Reports ActiveX Designer - tfmm6results1colcourier.rpt

Transcription:

More Eff ective C++( MEC++),.,. 2002 11 25 2002 12 15,,.. (chapter). (seaousak@hotmail.com). (www.kwak101.pe.kr) kwak101 [MEC++ ].. (, seaousak@hotmail.com, http://seaousak.natoo.net), More Eff ective C++. C++,.

6 C++. C++ Report Dr.Dobb's Journal C/C++ User Journal C++. Effective C++, Effective More Effective. More Effective C++ Effective C++. C++. C++,.,..,,.,, C++. C++. : AV(Anti-Virus). Microsoft MVP(Most Valuable People), KBench ( ) 1997.06 ~ 1997.12 : C++, 1998.01 ~ 1998.12 Computer Club, 1998.01 ~ 1998.12 : AICC, 1999.05 ~ 2001.10 :, 2001.01 ~ : Visual C++ 2000.03 ~ :, 2001.05 : ' C# ', 2002.04 : Microsoft Visual C++.NET Step By Step, 2002.09 : Microsoft Programming.NET, 2002.10 : Micrososft Visual C#.NET Programming, 2002.11 ~ : ' ' 2002.04 : Microsoft, 2002.06 : Microsoft 2002.11 : MCAD(Microsoft Certified Application Developer) Charter Member

7 (lumina75@naver.com), Gof. MEC++,,.,..,.,,.,,, PLC, C++ Template, (nemonandes@empal.com) Effective C++, More Effective C++,.,. (chapter). More Effective C++...

8 4 /. Windows Networking 168, ALMS(Application Level Multicast System),,,, (jof4002@krpost.net, http://www.jof4002.net) C++.,.! STL...,.,,.,.... NC, 3 (jof4002)., Google...

Addison-Wesley Professional Computing(AW Prof. ). AW Prof. C++. Effective STL More Effective C++,,., (errata) ( 2001 12 12 ).,,.,.,..

14 STL STL(,, 2002),., The C++ Standard Library : Tutorial & Reference (Nicolai M. Josuttis, Addison Wesley, 1999, ) The C++ : - & (, ASCII, 2001) Effective C++ 2/E (Scott Meyers, Addison-Wesley, 1998) Effective C++ (, Ascii Addison Wesley programming series, 1998). (container), (vector, list ). ( - string, pair :,,, STL ' ) C++ (fiume620@hotmail.com, http://www.fiumewith.com) (lazy evaluation :, eager evaluation :. over-eager evaluation : ). : 1. (parameter), (argument)., ( ).. argument, parameter. 2. hierarchy (gryu@korea.com) ( ), ( ). http :/ / www.occam.com.ne.kr. 3. const.

15 - const < > * name ; : ( ) - < > * const name ; : ( ) 4. ( ),. Effective C++ More Effective C++ Effective STL EC++ MEC++ ESTL t RaNsLaTi On.. ht t p :/ /www. kwak101.pe. kr

( ) const ant t i me ( ) l i near ( ) l i near t ime ( ) l ogar i t hmi c t i me ( ) quadr at i c 80-20 rul e al gor i t hm cache chunk col l ect i on compl exi t y component directed acyclic graph di r ect ed gr aph i nt ernat i onal i zat i on i nval i dat i on i t er at i ve cal l l ocal e l ocal i t y of r ef er ence l val ue memor y l ayout ( ) ( ) 80-20,,

18 N or der of magni t ude obj ect f i l e page f aul t per si st ence pr ef et chi ng pr of i l e r esol ve rval ue scope t hr ead 10 N ( ) (, ), C+ +, (cl ass ) hi er ar chy (except i on) cat ch by r ef er ence (except i on) cat ch by val ue (obj ect ) cr eat e (obj ect ) dest r oy ( ) del et e ( ) deep copy ( ) shal l ow copy ( ) cat ch ( ) pr opagat e ( ) r et hr ow ( ) t hr ow ( ) expl i ci t t ype conver si on ( ) i mpl i ci t t ype conver si on ( ) st r ongl y t yped ( ) ( ). C++. ( ) ( ) ( ), ( ) ( ) ( ) ( ),

19 ( ) weakl y t yped ( ) eager eval uat i on ( ) l azy eval uat i on ( ) over - eager eval uat i on abst r act cl ass ar gument bui l t - i noper at or bui l t - i nt ype cal l back cal l ee cal l er cast comma operator concr et e cl ass const const ness const r uct or const r uct s (i n C++) copy- on-wr i t e der ef er ence dest ruct or eager eval uat i on except i on saf et y except i on speci f i cat i on expl i ci t expr essi on gl obal obj ect i mpl i ci t i nt ernal l i nkage l azy l i nkage l ocal obj ect,, ( ), const( ) (C++ ), COW ( ) ( ) ( C++ ), explicit (C++ ) (, )

20 member i ni t i al i zat i on l i st mi xed- t ype assi gnment mi xi n name mangl i ng nest ed non- const non-member over - eager over l oad (i ng) over r i de par amet er par t i al as si gnment pass pl acement new poi nt er post f i x pr ef i x pseudo- const r uct or pseudo- dest ruct or r aw memor y r aw poi nt er r edef i ne r ef er ence reference count (ing) r esour ce r et urn r unt i me t ype i dent i f i cat i on semant i cs shor t - cut (eval uat i on) sl i ce,, ( ), const ( ), ( ),, (, ), new ( ) ( ), C/C++ (dumb) ( ), ( ) ( ) ( ), ( )

21 sl i ci ng pr obl em smar t poi nt er speci f i cat i on speci al i ze (t empl at e ) st ack r ewi ndi ng t empor ar i es t hr ead saf et y vol at i l eness, ( ) STL STL( ) bi t set deque hash_map hash_set l i st map mul t imap mul t i set pai r r ope set sl i st st r i ng t r ai t s vect or,,,

22 STL, C + + al gor i t hm al l ocat or associ at i ve cont ai ner base i t er at or capaci t y const i t er at or dependent t ype equal i t y equi val ence f acet f orward i t er at or f unct i on obj ect f unct or gener al i zat i on gener i c hashed poi nt er i nst ance i t er at or l ocal e oper at i on pr edi cat e r andom access i t er at or r ange reverse iterator sequence t empl at e, ( ), ( ),,,

.,..,. Computer Architecture: A Quantitative Approach (Morgan Kaufmann, 1 1990) L. (John L. Hennessy) A (David A. Patterson)., 16 80-20.,.,.,. comp. l ang. c++ comp. st d. c++. C++.,.

24 (Brian Kernighan) 1) C++, 2. 3, (Dan Saks) Gotchas. C++. 5 (single-argument), (Andrew Koenig) C++ Report 1994 1. (prefix) (postfix) comp. l ang. c++ (James Kanze) 6. Effective C++ (David Cok), 8 oper at or new new.,.. ( 9 ) A. (Margaret A. Ellis) (Bjarne Stroustrup)Annotated C++ Ref erence Manual( ARM. ) 15.3. (resource acquisition is initialization). (Tom Cargill). 11 Taligent's Guide to Designing Programs(Addison-Wesley, 1994) 4. 1) The C Program ming Lanuguage (Prentice- Hall 1979, 1988)Addison-Wesley Professional Computing Series

25 18, DynArray (over-eager) C++ Report 1992 6 A Dynamic vector is harder than it looks. C++ Report 1994 1. 21 1991 USENIX C++ Conference An AWK to C++ Translator. (overloading) ( 67!) 21,. 26, (Jamshid Afshar) comp. l ang. c++. oper at or new (mixin) ( 27) (Don Box) 2). (Steve Clamage), dynami c_ca st. 28 (smart pointer)., (Steven Buroff) (Rob Murray) C++ Report 1993 10R., Smart Pointers: They're Smart, but They're Not Pointers(1992 USENIX C++ Conference ) C++ Oracle, Design and Evolution of C++( ) 15.9.1, (Gregory Colvin) C/C++ Solutions 95 C++ Memory Management, (Cay Horstmann) 3) C++ Report 1993 3-4. 28.. 29, C++ Strategies and Tactics( 2) Essential COM(Addison-Wesley 1998) 3) Core Java(Prentice Hall, 1996)

26 ) 6.3.2 7.4.2. C++ Report 1993 3~4. 30 lvalue C User's Journal(C/ C++ Users Journal ) 1993 1.,. ( 31 ), comp. l ang. c++ Design and Evolution of C++( ) 13.8.1. 33 1994 1995 C++ Report., dynami c_ca st oper at or =. 34C++ Report 1992 5 Linking C++ with other languages. strdup. ( ).., ( ). (Jill Huchital), (Tim Johnson),, (Eric Nagler), (Chris Van Wyk). (Katrina Avery), (Don Box), (Steve Burkett), (Tom Cargill), (Tony Davis), (Carolyn Duby), (Bruce Ecke l) 4), (Read Fleming), (Cay Horstmann), (James Kanze),

27 (Russ Paielli), (Steve Rosenthal), (Robin Rowe), (Dan Saks), (Chris Sells), (Webb Stacy), (Dave Swift), (Steve Vinoski). (Bob Beauchaine), (Gerd Hoeren), (Jeff Jackson), L. (Nancy L. Urbano) 5)...,. Luis Kida, John Potter, Tim Uttormark, Mike Fulkerson, Dan Saks, Wolfgang Glunz, Clovis Tondo, Michael Loftus, Liz Hanks, Wil Evers, Stefan Kuhlins, Jim McCracken, Alan Duchan, John Jacobsma, Ramesh Nagabushnam, Ed Willink, Kirk Swenson, Jack Reeves, Doug Schmidt, Tim Buchowski, Paul Chisholm, Andrew Klein, Eric Nagler, Jeffrey Smith, Sam Bent, Oleg Shteynbuk, Anton Doblmaier, Ulf Michaelis, Sekhar Muddana, Michael Baker, Yechiel Kimchi, David Papurt, Ian Haggard, Robert Schwartz, David Halpin, Graham Mark, David Barrett, Damian Kanarek, Ron Coutts, Lance Whitesel, Jon Lachelt, Cheryl Ferguson, Munir Mahmood, Klaus-Georg Adams, David Goh, Chris Morley, Rainer Baumschlager, Christopher Tavares, Brian Kernighan, Charles Green, Mark Rodgers, Bobby Schmidt, Sivaramakrishnan J., Eric Anderson, Phil Brabbin, Feliks Kluzniak, Evan McLean, Julian Smith, Kurt Miller. More Effective C++ ( )., C++ ISO/ANSI 6).. (John Max Skaller) (Steve Rumsby) ANSI C++ (draft) HTML. (Vivian Neou) (16 ) HTML 4 ) Thinking in Java(Prentice Hall, 1998) 5) 6). 1996

28 WWW. HTML. (Bryan Hobbs) (Hachemi Zenad) (MetaWare) C++., C++. DOS DOS. C++,. Corporate and Professional Publishing Division. (Kim Dawley), (Lana Langlois), (Simone Payment), (Marty Rabinowitz), (Pradeepa Siva), (John Wait)..,. C++ Report. (Kathy Reed) ( ).. (Donald French) C++.,. (Beaver Ridge)3 ( (Jayni Besaw), (Lorri Fields), (Beth McKee)).

29 L..,,.?,..., (Persephone)..,..

C++ 1). 10, C++. C++, C++??. C++, (C ). C++.,. C++,,.. C++. 1990 C++?. 1992?.? C++.. C++? ( ) 1) 1 1996, ANS I C+ +. J ava 1. 2003, C+ + PC, C/ S,, PC.

32?,,.? (more effective) C++.,,,,,,,,.?. 35. C++,. (guideline).,,. 35. C++,., 9 15 (exception)., C++., 25 31, ( ),.. 16 24..,., More Effective C++ C++. C++, C++,. C++.

33?, C++, ( ). (class), (visibility protection level),,. C++., C++. Mo re Effe c t ive C + + C + + C++ ISO/ANSI 1998.,.. (template), C++., (exception) 9 15.,. 9 15,. C++,,. ( ) ( ),.. 2), ( ). ( ),. 2) 2002,., MSVC+ +.NET gcc 2.95x, C+ + 5 (MSVC+ + 6 (exception specify), (?) ).

34 ( )? C++,.,.. (, )., C++..,., C++.,.,. bool. t r ue f al se. bool.. e n um b o o l { f a l s e, t r u e } ; bool i nt (overload), ( ==, <, >=, ) i nt.,. v o i d f (i n t ) ; v o i d f (b o ol ) ; i n t x, y ;... f ( x < y ) ; / / f (i n t ). / / f (b o o l ).

35, enum bool bool., bool typedef t r ue f al s e. t yp e d e f i n t b o o l ; c on s t b o ol f a l s e = 0 ; c on s t b o ol t r u e = 1 ; C C++. bool., bool i nt... C++ st at i c_cas t, cons t _ca st, dynami c_cas t, r ei nt er pr et _cas t., 2. C,. C++. C++.. s t r i ng C char *,. st r i ng char *,., ( 9 10 ). st r i ng char *, ( 29 ). s t r i ng s t r i ng.. char *.

36 (Standard Template Library,. STL. 35 ). STL (bitset), (vector), (list), (queue), (stack), (map), (set).,. STL. (SGI) STL. SGI STL ht t p : / / www. sgi. com/ t ech/ s t l /. 3), STL. STL, STL.? STL( ). (inheritance) public. public. -. 31. GameObject SpaceShip SpaceStation Asteroid Eff ective C++ 1 (2 ). C++,. 3), www.stlport.org STL Stlport.

37 4) (GameObj ect ), (SpaceShi p). C++ (pointer) (reference)., (declared).. Game Ob j e c t *p g o = / / p g o n e w Sp a c e Sh i p ; / / Game Ob j e c t *, / / Sp a c e Sh i p *. As t e r o i d *p a = n ew As t e r o i d ; p g o = p a ; Game Ob j e c t & r g o = *p a ; / / p a / / As t e r o i d *. / /. / / p g o / / ( ) / / Game Ob j e c t *. / / p g o / / As t e r o i d *. / / r g o / / Game Ob j e c t. / / As t e r o i d.. pgo pointer-to-gameobj ect, pa pointer-to-ast er oi d. r go reference-to-gameobj ect.. l hs r hs. left-hand side( ) right-hand side( ).. c l a s s Ra t i on a l {... } ; 4 ) diagram, UML.

38 Rat i onal ( ),. b o o l op e r a t o r == (c on s t Ra t i on a l & l h s, c on s t Ra t i on a l & r h s ) ;. Ra t i on a l r 1, r 2 ;... i f (r 1 == r 2 )... oper at or ==, r 1 == l hs, r 2 r hs.. ctor constructor( ), dtor destructor( ), RTTI RunTime Type Identification(. dynami c_cast ). 5),. C C++, C++., C++,.. c l a s s Wi d ge t {... } ; / / - / /. Wi d g e t *p w = n e w Wi d g e t ; / / Wi d g e t / /.... / / p w (d e l e t e ) / /. 5) ctrl/ dtor /.

39. pw Wi dget., Wi dget Wi dget (,,, (lock) ),. C++, (resource leak)., (inline).. C++.,,.,. More Eff ective C++,.,. C++. C++.,. C++,.,.,. (client), ( ), ( ). Dat e (, ),., Dat e..?,?,. (client centric).,.

40?.,..,, (instantiation)., T Ar r ay, ( ) Ar r ay. Ar r ay<t>., swap T, swap<t> swap.,.,,,. (,, ). (printing)... C++...,,. Scott Meyers c/o Editor-in-Chief, Corporate and Professional Publishing Addison-Wesley Publishing Company 1 Jacob Way Reading, MA 01867 U. S. A. mec++@awl. com.

41 1 (first printing).,, ( ). URL 6) ht t p :/ /www. awpr of essi onal. com/ cat al og/ pr oduct. asp?pr oduct _i d={3923c66a- 8589-44A3-8A87-926854646935}. FTP f t p. awl. com / aw.pr of. comp. ser i es.,.. ht t p : / /www. ar i st ei a. com/ Mai l i ngli st / i ndex. ht ml..?! 6) http:// www.awprofessional.com/ Scott Meyers.

,. C++,,,,? C++..,., C C++.,, C.. C++ C, C (array) C++.,, C++.,.

44 1 : (p o inte r) (re fe re nc e ) -> ( *,. ),.,.,?, (null reference)..,,,., (null).,,.,..?. c h a r *p c = 0 ; / / c h a r & r c = *p c ; / / / /., ( ).,..., (null)., C++.

45 s t r i n g & r s ; / /! / /. s t r i n g s ("x y z z y " ) ; s t r i n g & r s = s ; / /. r s s.. s t r i n g *p s ; / / / /. C++.?. v o i d p r i n t Doub l e (c on s t d oub l e & r d ) { c ou t << r d ; / / r d } / /. d oub l e., ( ). v o i d p r i n t Doub l e (c on s t d oub l e *p d ) { i f (p d ) { / /. c ou t << *p d ; } }... s t r i n g s 1 ( "Na n c y " ) ; s t r i n g s 2 ( " Cl a n c y " ) ;

46 s t r i n g & r s = s 1 ; / / r s s 1. s t r i n g *p s = &s 1 ; r s = s 2 ; p s = &s 2 ; / / p s s 1. / / r s s 1, / / s 1 / / " Cl a n c y ". / / p s s 2. / / s 1., (, ), ( )..,.. oper at or [], ( ). v e c t o r <i n t > v (1 0 ) ; v [5 ] = 10 ; / / 1 0 i n t. / / (v e c t o r ) / / ( 3 5 ). / / op e r a t o r [ ] / /. oper at or [],. *v [5 ] = 1 0 ; v.. oper at or [] (, 30 ).

47,,,..?. 2 : C+ + got o 1 (cast, ). got o..., C., C.., (const ) (, (cons t ness) ) (, ). C (. C++ C ). C.. C++?,?.,, gr ep 1). C++ C C++. st at i c_cast, const _cast, dynami c_cast, 1) Unix.

48 r ei nt er pr et _ca st,, C++ ( ). s t a t i c_ c a s t < > ( ). i nt doubl e. C. i n t f i r s t Numb e r, s e c on dnumb e r ;... d oub l e r e s u l t = ( (d oub l e ) f i r s t Numb e r ) / s e c on dnumb e r ;. d oub l e r e s u l t = s t a t i c_ c a s t <d oub l e > (f i r s t Numb e r ) / s e c ondnumb e r ;. st at i c_cast C,. C., st r uct i nt doubl e., st at i c_cast (const ness). const _cast. C++. const _cast (vol at i l eness).,, const vol at i l e.

49 const _cast..., c l a s s Wi d g e t {... } ; c l a s s Sp e c i a l Wi d g e t : p ub l i c Wi d g e t {... } ; v o i d up d a t e (Sp e c i a l Wi d g e t *p s w) ; Sp e c i a l Wi d ge t s w; / / s w. c on s t Sp e c i a l Wi d g e t & c s w = s w; / / c s w / /. up d a t e (&c s w) ; / /! c on s t Sp e c i a l Wi d ge t * / / Sp e c i a l Wi d g e t * / /. up d a t e (c on s t _ c a s t < Sp e c i a l Wi d ge t *> (&c s w) ) ; / /. &c s w / / (c s w - s w / / - up d a t e / / ). up d a t e ( (Sp e c i a l Wi d g e t * ) &c s w) ; / /. / / C. Wi d g e t *pw = n e w Sp e c i a l Wi d g e t ; up d a t e (p w) ; / /! pw Wi d g e t *, / / up d a t e Sp e c i a l Wi d g e t *. up d a t e (c on s t _ c a s t < Sp e c i a l Wi d ge t *> (pw) ) ; / /! c on s t _ c a s t / /, / / 2 ) / /. const _cast. 2), (down casting).

50 C++ dynami c_cast.., dynami c_cast (derived), (sibling) 3). ( ) ( ). Wi d g e t *p w;... up d a t e (d yn ami c_ c a s t < Sp e c i a l Wi d g e t *> (p w) ) ; / /. up d a t e p w / / Sp e c i a l Wi d ge t. / / p w, / /. v o i d up d a t evi a Re f (Sp e c i a l Wi d g e t & r s w) ; up d a t evi a Re f (d yn ami c_ c a s t < Sp e c i a l Wi d g e t &> (*p w) ) ; / /. pw / / up d a t evi a Re f *p w Sp e c i a l Wi d g e t / /. / /. dynami c_cast.. ( 24 ),. i n t f i r s t Numb e r, s e c on dnumb e r ;... d oub l e r e s u l t = d yn ami c_ c a s t <d oub l e > (f i r s t Numb e r ) / s e c on dnumb e r ; / /!. c on s t Sp e c i a l Wi d g e t s w;... up d a t e (d yn ami c_ c a s t < Sp e c i a l Wi d g e t *> (&s w) ) ; / /! d yn ami c_ c a s t / /. 3), dynamic_cast. 27.

51, st at i c_cast, const _cast. C++ r ei nt er pr et _cast..,. r ei nt erpr et _cast.,. t yp e d e f v o i d (* Fu n c Pt r ) ( ) ; / / Fu n c Pt r / / v o i d / /. Fu n c Pt r f u n c Pt r Ar r a y [1 0 ] ; / / f u n c Pt r Ar r a y 1 0 Fu n c Pt r / /. f uncpt rar r ay. i n t d o Some t h i n g ( ) ;. dosomet hi ng f uncpt r Ar r ay. void, dosomet hi ng i nt? f u n c Pt r Ar r a y [ 0 ] = &d o Some t h i n g ; / /!. r ei nt er pr et _ca st. f u n c Pt r Ar r a y [ 0 ] = / /. r e i n t e r p r e t _ c a s t < Fu n c Pt r > (&d o Some t h i n g ) ; (C++ ),

52. ( 31 ), C++?. st at i c_cast, const _cast, r ei nt erpr et _cast.,. #d e f i n e s t a t i c_ c a s t (TYPE, EXPR) ( (TYPE ) (EXPR) ) #d e f i n e c on s t _ c a s t (TYPE, EXPR) ( (TYPE ) (EXPR) ) #d e f i n e r e i n t e r p r e t _ c a s t (TYPE, EXPR) ( (TYPE ) (EXPR) ).. d oub l e r e s u l t = s t a t i c_ c a s t (d oub l e, f i r s t Numb e r ) / s e c ondnumb e r ; up d a t e (c on s t _ c a s t (Sp e c i a l Wi d g e t *, &s w) ) ; f u n c Pt r Ar r a y [ 0 ] = r e i n t e r p r e t _ c a s t (Fu n c Pt r, &d o Some t h i n g ) ;,,.,? dynami c_cast.., C.. dynami c_cast. #d e f i n e d yn ami c_ c a s t (TYPE, EXPR) ( (TYPE ) (EXPR) ), dynami c_cast..

53, 10. C++. C++ C., C++. C++ ( ),. C?.. 4) 3 :,..., (array)..,.. BST(binary search tree. ), BST Bal ancedbst. c l a s s BST {... } ; c l a s s Ba l a n c e d BST : p ub l i c BST {... } ;,.., BST Bal ancedbst i nt., BST BST. 4 ),.

54 v o i d p r i n t BSTAr r a y (o s t r e am& s, c on s t BST a r r a y [ ], i n t numel eme n t s ) { f o r (i n t i = 0 ; i < n umel eme n t s ; ++i ) { s << a r r a y [i ] ; / / op e r a t o r << } / / BST } / /. BST. BST BSTAr r a y [ 1 0 ] ;... p r i n t BSTAr r a y (c ou t, BSTAr r a y, 1 0 ) ; / /.. Bal ancedbst pr i nt BSTAr r ay? Ba l a n c e d BST b BSTAr r a y [1 0 ] ;... p r i n t BSTAr r a y (c ou t, b BSTAr r a y, 10 ) ; / /?.. f o r (i n t i = 0 ; i < n umel eme n t s ; ++i ) { s << a r r a y [i ] ; }, ar r ay [i ]., * (ar r ay+i ).. ar r ay+i. i *si zeof ( ). ar r ay [0] ar r ay [i ] i.,

55,.,. ar r ay BST, BST, ar r ay ar r ay+i i *si zeof (BST).., Bal ancedbst pr i nt BSTAr r ay., si zeof (BST ), Bal ancedbst.,., pr i nt BSTAr r ay Bal ancedbst? pr i nt BSTAr r ay Bal ancedbst.. (delete),.. / /, / /. v o i d d e l e t ear r a y (o s t r e am& l o g St r e am, BST a r r a y [ ] ) { l o g St r e am << " De l e t i n g a r r a y a t a d d r e s s " << s t a t i c_ c a s t <v o i d *> (a r r a y ) << ' \ n ' ; d e l e t e [ ] a r r a y ; } Ba l a n c e d BST *b a l Tr e ear r a y = n e w Ba l a n c e d BST [5 0 ] ; / / Ba l a n c e d BST / /.... d e l e t ear r a y (c ou t, b a l Tr e ear r a y ) ; / /.., ( 8 ).?,

56 d e l e t e [ ] a r r a y ;. / / *a r r a y, / /. f o r (i n t i = - 1 ; i >= 0 ; - - i ) { a r r a y [i ]. BST : : ~BST ( ) ; / / a r r a y [i ] } / /.,. C++,,...,.,. (BST ) (Bal ancedbst ),. 33, 33. 4 : (default constructor, ) C++.,.., ( ) 0.

57 ( 28 ) (null).,,.,.., (address book). ID, ID,.,,.,,.,., ID (Equipment) (?). c l a s s Equ i pme n t Pi e c e { p ub l i c : Equ i pme n t Pi e c e (i n t I DNumb e r ) ;... } ; Equi pment Pi ece,..,, Equi pment Pi ece. Equ i pme n t Pi e c e b e s t Pi e c e s [ 10 ] ; / /! Equ i pme n t Pi e c e / /. Equ i pme n t Pi e c e *b e s t Pi e c e s = n e w Equ i pme n t Pi e c e [1 0 ] ; / /!

58.. i n t I D1, I D2, I D3,..., I D1 0 ; / / I D / /... Equ i pme n t Pi e c e b e s t Pi e c e s [ ] = { Equ i pme n t Pi e c e (I D1 ), Equ i pme n t Pi e c e (I D2 ), Equ i pme n t Pi e c e (I D3 ),..., Equ i pme n t Pi e c e (I D1 0 ) } ; / /. / /., (new ).. t yp e d e f Equ i pme n t Pi e c e * PEP ; / / PEP p o i n t e r t o a n / / Equ i pme n t Pi e c e ". PEP b e s t Pi e c e s [ 10 ] ; PEP *b e s t Pi e c e s = n e w PEP [ 1 0 ] ; / /.. / /. Equi pment Pi ece. f o r (i n t i = 0 ; i < 1 0 ; ++i ) b e s t Pi e c e s [i ] = n ew Equ i pme n t Pi e c e (I D Numb e r ) ;.,..,. Equi pment Pi ece.

59,. (raw) new(placement new) ( 8 ) Equi pment Pi ece. / / 1 0 Equ i pme n t Pi e c e / /. op e r a t o r n e w [ ] 8 / /. v o i d * r a wmemo r y = op e r a t o r n e w [ ] (1 0* s i z e o f (Equ i pme n t Pi e c e ) ) ; / / b e s t Pi e c e s Equ i pme n t Pi e c e / /. Equ i pme n t Pi e c e *b e s t Pi e c e s = s t a t i c_ c a s t <Equ i pme n t Pi e c e *> (r a wmemo r y ) ; / / " n e w (p l a c eme n t n ew) " ( 8 ) / / Equ i pme n t Pi e c e 1 0. f o r (i n t i = 0 ; i < 10 ; ++i ) n e w (b e s t Pi e c e s +i ) Equ i pme n t Pi e c e (I D Numb e r ) ;, Equi pment Pi ece. ( ),., C++.?. new, (, )., oper at or del et e []( 8 ). / / b e s t Pi e c e s / /. f o r (i n t i = 9 ; i >= 0 ; - - i ) b e s t Pi e c e s [i ]. ~Equ i pme n t Pi e c e ( ) ;

60 / /. op e r a t o r d e l e t e [ ] (r a wmemo r y ) ;,. new (undefined). d e l e t e [ ] b e s t Pi e c e s ; / /! b e s t Pi e c e s / / n ew / /. new new, 8. (?).?, 5)., Ar r ay. t emp l a t e < c l a s s T> c l a s s Ar r a y { p ub l i c : Ar r a y (i n t s i z e ) ;... p r i v a t e : T *d a t a ; } ; t emp l a t e < c l a s s T> Ar r a y<t> : :Ar r a y (i n t s i z e ) { d a t a = n e w T [s i ze ] ; / /... / / T : : T ( ). } 5) (complex), C+ + int, double.

61,. vect or ( ),.,..,..,.?. (virtual base class).,.,.,,.?,.., Equi pment Pi ece. c l a s s Equ i pme n t Pi e c e { p ub l i c : Equ i pme n t Pi e c e (i n t I DNumb e r = UNSPECI FI ED) ;... p r i v a t e : s t a t i c c on s t i n t UNSPECI FI ED; / / I D / / } ; / /., Equi pment Pi ece. Equ i pme n t Pi e c e e ; / /

62,., Equi pment Pi ece. ID Equi pment Pi ece, ID.,. ID.,.. ( ),.,.....,.,., /.