SlideShare a Scribd company logo
1 of 26
Effective C++_2
131043 ์–‘ํ˜„์ฐฌ
NHN NEXT
์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๊ฒฐ๋ก ์€
์˜ˆ์™ธ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋„๋ก ์ปดํŒŒ์ผ ํ•˜๋ผ
๋ฆฌ์†Œ์Šค ๋ˆ„์ˆ˜๋ฐฉ์ง€๋Š” ์†Œ๋ฉธ์ž๋กœ
โ€ข ์ง€์—ญ๋ฆฌ์†Œ์Šค(์Šคํƒ ํ• ๋‹น)๋ฅผ ๋ฌผ๊ณ  ์žˆ๋Š” ํฌ์ธํ„ฐ์™€ ์ด๋ณ„ํ•˜์ž
โ€ข ๋งค๋ฒˆ ์˜ˆ์™ธ์— delete๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค.
โ€ข Try-catch๋ฌธ์€ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์งˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ  ์žˆ
๋‹ค.
โ€ข ์†Œ๋ฉธ์ž์— delete๋ฅผ ๋ฌผ๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์ธ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ž
โ€ข ์œˆ๋„์šฐ ์‹œ์Šคํ…œ API๋“ค์€ c์Šคํƒ€์ผ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
์œˆ๋„์šฐ ์‹œ์Šคํ…œ API๋“ค์˜ ๊ด€๋ฆฌ๋ฒ•
โ€ข ๋ฆฌ์†Œ์Šค๋ฅผ ์–ป์–ด๋‚ด๋Š” ์ƒ์„ฑ์ž์™€ ํ•ด์ œํ•˜๋Š” ์†Œ๋ฉธ์ž๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ์ด
์šฉํ•˜์—ฌ c์Šคํƒ€์ผ API๋“ค์„ ๊ด€๋ฆฌํ•˜์ž
์ƒ์„ฑ์ž์—์„œ๋Š” ๋ˆ„์ˆ˜๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก
โ€ข Operator new๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์œ„ํ—˜์ด ์žˆ๋‹ค.
โ€ข C++์—์„œ๋Š” ์ƒ์„ฑ์ด ์•ˆ์ „ํ•˜๊ฒŒ ์™„๋ฃŒ๋œ ๊ฐ์ฒด์— ๊ด€ํ•ด์„œ๋งŒ ์†Œ๋ฉธ์ž๋ฅผ
ํ˜ธ์ถœํ•œ๋‹ค.
โ€ข ์ด๋Ÿฐ ์ ์„ ์—ผ๋‘ํ•˜๊ณ  ์ƒ์„ฑ์ž๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.
โ€ข ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊นŒ๋‹ค๋กœ์šด ์„ค๊ณ„๋ฌธ์ œ๋“ค์„ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ• 
์ˆ˜ ์žˆ๋‹ค.
์†Œ๋ฉธ์ž์—์„œ๋Š” ์˜ˆ์™ธ๊ฐ€ ํƒˆ์ถœํ•  ์ˆ˜ ์—†๋„๋ก
โ€ข ์†Œ๋ฉธ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‘ ๊ฐ€์ง€์ด๋‹ค.
โ€ข ์ฒซ์งธ๋Š” ํ†ต์ƒ์ ์ธ ์†Œ๋ฉธ์ด๋‹ค. ์ฆ‰ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๊ฐ€ ์œ ํšจ๋ฒ”
์œ„์—์„œ ๋ฒ—์–ด๋‚˜ ์†Œ๋ฉธ๋˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค.
โ€ข ๋‘˜์งธ์˜ ๊ฒฝ์šฐ๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋  ๊ฒฝ์šฐ์ด
๋‹ค.
โ€ข ํ•˜์ง€๋งŒ ์†Œ๋ฉธ์ž ์•ˆ์—์„œ๋Š” ์–ด๋Š ๊ฒฝ์šฐ์— ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š”
๋ฐฉ๋ฒ•์ด ์—†๋‹ค.
์†Œ๋ฉธ์ž ์ž‘์„ฑ์‹œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํƒœ๋กœ ๊ฐ€์ •ํ•˜์ž
โ€ข ์†Œ๋ฉธ์ž๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ฐฉ์–ด์ ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
โ€ข ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š” ๋„์ค‘ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์™ธ ๋•Œ๋ฌธ์— ํ๋ฆ„์ด ์†Œ
๋ฉธ์ž ํ•จ์ˆ˜๋ฅผ ๋– ๋‚˜๋ฉด C++์—์„œ๋Š” terminateํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
โ€ข Terminateํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์นผ๊ฐ™์ด ์ข…๋ฃŒ์‹œ์ผœ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์—ญ๊ฐ์ฒด
์กฐ์ฐจ๋„ ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข ๋”ฐ๋ผ์„œ ์†Œ๋ฉธ์ž ์•ˆ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์†Œ๋ฉธ์ž๋ฅผ ํƒˆ์ถœํ•˜๊ฒŒ ๋˜
๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋“ค์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.
์˜ˆ์™ธ ๋ฐœ์ƒ์€ ๋งค๊ฐœ๋ณ€์ˆ˜์ „๋‹ฌ, ๊ฐ€์ƒํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๋‹ค๋ฅด๋‹ค.
โ€ข ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ catch๋ฌธ์€ ์ƒ๊ธด ๊ฒƒ๋„ ์—ญํ• ๋„ ๋น„์Šทํ•˜๋‹ค.
โ€ข ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์€ ํ•จ์ˆ˜ ์ข…๋ฃŒ์‹œ ํ๋ฆ„์ด ํ˜ธ์ถœํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค
์ง€๋งŒ catch๋ฌธ์€ throw๋ฅผ ํ˜ธ์ถœํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค์ง€ ์•Š๋Š”
๋‹ค.(goto๋ฌธ๊ณผ ๋น„์Šทํ•˜๋‹ค. ํ๋ฆผ์„ ๊นจ๋ฒ„๋ฆฐ๋‹ค.)
โ€ข ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ธ์ž๊ฐ€ Catch by value๊ฐ€ ๋˜๋“  Catch by
reference๊ฐ€ ๋˜๋“  ์‚ฌ๋ณธ์ƒ์„ฑ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ๋‹ค๋งŒ ์‚ฌ๋ณธ ์ƒ์„ฑ ํšŸ์ˆ˜
๊ฐ€ ๋‹ค๋ฅด๋‹ค. Value๋Š” 2๋ฒˆ Reference๋Š” 1๋ฒˆ ์ƒ์„ฑ๋œ๋‹ค.
โ€ข ํฌ์ธํ„ฐ์— ์˜ํ•œ ์ „๋‹ฌ์€ ํ•จ์ˆ˜๋ž‘ ๊ฐ™๋‹ค.
โ€ข ์ง€์—ญ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋Š” ๋„˜๊ฒจ๋ด์•ผ ์†Œ์šฉ์—†๋‹ค. ๊ฒฐ๊ตญ์€ ์œ ํšจ๋ฒ”์œ„
๋ฅผ ๋„˜์–ด์„œ๋ฉด ์†Œ๋ฉธ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋™์  ํƒ€์ž…๊ณผ ์ •์  ํƒ€์ž… ๋ณต์‚ฌ
โ€ข ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ๋•Œ๋Š” ์ƒ์ˆ˜ ์ฐธ์กฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†๋‹ค. ๊ทธ๋ƒฅ ์ฐธ์กฐ
์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข ์˜ˆ์™ธ๋ฅผ ์ „ํŒŒํ•˜๋Š” ๊ฒฝ์šฐ rethrow๋ฅผ ์ด์šฉํ•˜์ž. Rethrow๋Š” ๊ฐ์ฒด์˜ ๋ณต
์‚ฌ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข Rethorw๋ž€ catch๋ฌธ์•ˆ์—์„œ throw;๋ฅผ ํ–ˆ์„ ๋•Œ๋ฅผ ๋œปํ•œ๋‹ค.
์˜ˆ์™ธ์™€ ํƒ€์ž…๋ณ€ํ™˜
โ€ข ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ˆ์™ธ๋Š” ์•”์‹œ์ ์ธ ํƒ€์ž…๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข ๋‹ค๋งŒ ์ƒ์†๊ด€๊ณ„์˜ ํƒ€์ž…๊ณผ ํฌ์ธํ„ฐ๋กœ๋ถ€ํ„ฐ void*๋กœ์˜ ํƒ€์ž…๋ณ€ํ™˜์€ ํ—ˆ
์šฉ๋œ๋‹ค.
โ€ข ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ โ€ž๊ฐ€์žฅ ์ฒซ์งธ์˜ ๊ฒƒ์„ ์„ ํƒํ•˜๋Š”โ€Ÿ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋”ฐ
๋ฆ…๋‹ˆ๋‹ค.
Try catch๋ฌธ ์ž๋™์™„์„ฑ์„ vs์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ด
๋ ‡๊ฒŒ ๊ธฐ๋ณธ์ ์œผ๋กœ 3๊ฐœ์˜ catch๋ฌธ์ด ์ƒ์„ฑ๋œ๋‹ค.
์•„๋ž˜๋กœ ๊ฐˆ์ˆ˜๋ก ๋ถ€๋ชจ์ด๋‹ค.
๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋Š” ์ฐธ์กฐ์ž๋กœ
โ€ข C++์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€์˜ˆ์™ธ๋Š” ์ „๋ถ€ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค.
โ€ข Catch by pointer๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.
โ€ข ์ „์—ญ๋ณ€์ˆ˜๋‚˜ ํž™์— ํ• ๋‹น๋œ ๊ฒฝ์šฐ์—๋งŒ ์œ ์šฉํ•  ๋ฟ๋”๋Ÿฌ ๊ด€๋ฆฌ๋„ ํž˜๋“ค๊ณ 
delete์—ฌ๋ถ€๋„ ์•Œ๊ธฐ ํž˜๋“ค๋‹ค.
โ€ข Catch by value๋Š” 2๋ฒˆ ์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ slicing
problem์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
โ€ข Slicing problem์€ ๋ถ€๋ชจ์˜ ๊ฐ์ฒด์˜์—ญ๋งŒ ๋ณต์‚ฌ๋˜์–ด ์ž์‹์˜ ์˜์—ญ์ด
์ž˜๋ ค๋‚˜๊ฐ€๋Š” ํ˜„์ƒ์ด๋‹ค.
์˜ˆ์™ธ์ง€์ •๊ธฐ๋Šฅ์€ ๋ƒ‰์ฒ ํ•˜๊ฒŒ
โ€ข ํ•จ์ˆ˜๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ฌ ์˜ˆ์™ธ๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ์˜ˆ์™ธ์ง€์ •
์ด๋ผ๊ณ  ํ•œ๋‹ค.
โ€ข ์˜ˆ์™ธ์ง€์ •์— ์ผ๊ด€์„ฑ์ด ์—†์„ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ ๋„์ค‘ ๋ฐœ๊ฒฌํ•ด์ฃผ๊ณ  ํ•จ์ˆ˜๊ฐ€
์˜ˆ์™ธ์ง€์ • ๋ฆฌ์ŠคํŠธ์— ์—†๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ์™€ ํ•จ
๊ป˜ unexpected๋ผ๋Š” ํŠน์ˆ˜ ํ•จ์ˆ˜๊ฐ€ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋œ๋‹ค.
โ€ข ๋ฌธ์ œ๋Š” unexpectedํ•จ์ˆ˜๊ฐ€ terminate๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์ด์— ๋Œ€ํ•ด์„œ
๋Š” ์•Œ๊ณ  ์žˆ๋“ฏ ๊ทธ๋ƒฅ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”์–ด ๋ฒ„๋ฆฐ๋‹ค.
โ€ข Unexpectedํ•จ์ˆ˜๋Š” ๋งค์šฐ ์‰ฝ๊ฒŒ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—
์˜ˆ์™ธ์ง€์ •์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
Unexpectedํ•จ์ˆ˜์˜ ๋‚˜๋ฝ์„ ๋ง‰๋Š” ๋ฒ•
โ€ข ์˜ˆ์™ธ ์ง€์ •๋œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ์™€ ์˜ˆ์™ธ์ง€์ •์ด ์•ˆ๋œ ์˜›๋‚  ์ฝ”๋“œ๊ฐ€ ์„ž์ผ
์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•˜์ž
โ€ข ์˜ˆ์™ธ์ง€์ •์ด ์•ˆ ๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜์—๋Š” ์˜ˆ์™ธ
์ง€์ •์„ ๋‘์ง€ ์•Š๋Š”๋‹ค.
โ€ข ํ…œํ”Œ๋ฆฟ๊ณผ ์˜ˆ์™ธ์ง€์ •์€ ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž
โ€ข โ€œ์‹œ์Šคํ…œโ€์ด ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์˜ˆ์™ธ(C++ํ‘œ์ค€ ์˜ˆ์™ธ)๋ฅผ ์ฒ˜๋ฆฌํ•˜
์ž
โ€ข ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์„ ํ†ตํ•ด unexpectedํ•จ์ˆ˜๋ฅผ ๋Œ€์ฒดํ•  ์‚ฌ์šฉ์ž์˜ ํ•จ
์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.
์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ๋“œ๋Š” ๋น„์šฉ
โ€ข ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋“ค์–ด๊ฐ€๋Š” ๋‚ด๋ถ€์ ์ธ ๋น„์šฉ์€ ์กด์žฌํ•œ
๋‹ค.
โ€ข ์˜ˆ์™ธ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด
์˜ˆ์™ธ๊ธฐ๋Šฅ ์—†์ด ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ ์ตœ์ ํ™”์— ์ƒ๋‹นํ•œ ๊ธฐ๋Šฅ์„
์ค€๋‹ค.
โ€ข Try๋ธ”๋ก์œผ๋กœ ์ธํ•ด ์ƒ๊ธฐ๋Š” ๋น„์šฉ์ด ์žˆ๋‹ค. ์“ธ๋ฐ์—†์ด try๋ธ”๋ก์„ ๋‚จ๋ฐœ
ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.
โ€ข ์šฐ์„  ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์˜ˆ์™ธ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋„๋ก ์ปดํŒŒ์ผ ํ•˜๋ผ.
80 - 20
โ€ข ํ”„๋กœ๊ทธ๋žจ ๋ฆฌ์†Œ์Šค์˜ 80%๋Š” ์ „์ฒด ์‹คํ–‰ ์ฝ”๋“œ์˜ 20%๋งŒ์ด ์‚ฌ์šฉํ•œ๋‹ค.
โ€ข ์‹คํ–‰์˜ ํ•ต์‹ฌ์„ ๋‹ด๋‹นํ•˜๋Š” ์ฝ”๋“œ 20%๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ด ๋ถ€๋ถ„์„ ํšจ์œจ์ 
์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
โ€ข ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ์ž์‹ ์ด ์ง  ์ฝ”๋“œ๊ฐ€ ์–ด๋Š ์ •๋„์˜ ์ˆ˜ํ–‰ ์„ฑ
๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค.
โ€ข ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 20%๋ถ€๋ถ„์„ ์ฐพ์•„๋‚ด์ž
โ€ข 20%๋ฅผ ๋šซ์–ด๋ณด๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค.
์ง€์—ฐํ‰๊ฐ€๋Š” ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•  ๋งŒํ•˜๋‹ค
โ€ข ์ž‘์—… ๊ฒฐ๊ณผ๊ฐ€ ์ง„์งœ๋กœ ํ•„์š”ํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๊ทธ ์ฒ˜๋ฆฌ๋ฅผ ๋ฏธ๋ฃฌ๋‹ค. ์˜ˆ๋ฅผ ๋“ค
์–ด ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ 60์ดํ•˜๋กœ ๋–จ์–ด์ง€๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋œ
๋‹ค.
โ€ข ์ง„์งœ ํ•„์š”ํ•ด์ง€๊ธฐ ์ „๊นŒ์ง€๋Š” ์ž๊ธฐ๋งŒ์˜ ๋ฐ์ดํ„ฐ ์‚ฌ๋ณธ์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ 
๋‚จ์˜ ๊ฒƒ์„ ๋Œ์–ด๋‹ค ์‚ฌ์šฉํ•œ๋‹ค
โ€ข โ€ž์ง€์—ฐ๋œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐโ€Ÿ ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ง„์งœ๋กœ ํ•„์š”ํ•  ๊ฒฝ์šฐ
์—๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๊ทธ ์ „๊นŒ์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ๊ฐ์ฒด์˜ ๊ป๋ฐ๊ธฐ
๋งŒ ์žˆ๋‹ค.
โ€ข ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์€ ๋™์ž‘์„ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด
๋†“๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
์˜ˆ์ƒ๋˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•˜์ž
โ€ข ๋ฏธ๋ฆฌ ์ค€๋น„ํ•˜๋ฉด ์ฒ˜๋ฆฌ ๋น„์šฉ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข ์ƒ๋‹นํžˆ ์ž์ฃผ ์š”๊ตฌ๋  ๊ฒƒ ๊ฐ™์€ ๊ณ„์‚ฐ์ด ์žˆ๋‹ค๋ฉด, ๊ทธ ์š”๊ตฌ๋ฅผ ํšจ์œจ์ ์œผ
๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜์—ฌ ๋น„์šฉ์„ ๋‚ฎ์ถ”์ž.
โ€ข STL์‚ฌ์šฉ์‹œ iter->second๊ฐ€ ์•„๋‹Œ *(iter).second ์ด๋Ÿฐ ํ˜•ํƒœ๋กœ
iterator๋ฅผ ์‚ฌ์šฉํ•˜์ž
โ€ข CPU์˜ ์—ฐ์‚ฐ์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์“ธ ์ˆ˜๋ก ์†๋„
๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.
์ž„์‹œ ๊ฐ์ฒด์˜ ๊ทผ์›์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜์ž
โ€ข ์ž„์‹œ ๊ฐ์ฒด๋ž€ ์šฐ๋ฆฌ์ฝ”๋“œ์— ๋ณด์ด์ง€ ์•Š๋Š” ์ž„์‹œ๋กœ ๋งŒ๋“ค์–ด์ง„ โ€ž์ด๋ฆ„ ์—†
๋Š”โ€Ÿ ๊ฐ์ฒด์ด๋‹ค.
โ€ข ํ•จ์ˆ˜ํ˜ธ์ถœ์„ ์„ฑ์‚ฌ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์ด ์ ์šฉ ๋  ๋•Œ ์ƒ์„ฑ
๋œ๋‹ค.
โ€ข Return by value๋ฅผ ํ•  ๋•Œ ์ƒ์„ฑ๋œ๋‹ค.
โ€ข ์•”์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ๋Š” ์˜ค์ง ๊ฐ์ฒด๊ฐ€ ๊ฐ’์œผ๋กœ ์ „๋‹ฌ
๋  ๊ฒฝ์šฐ์™€ reference to const(์ƒ์ˆ˜ ์ฐธ์กฐ์ž)๊ฐ€ ์ „๋‹ฌ๋  ๊ฒฝ์šฐ์ด๋‹ค.
โ€ข ๊ฐ์ฒด๋ฅผ value๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํ•จ์ˆ˜๋Š” ๋ฐ˜ํ™˜ ์‹œ ์ž„์‹œ๊ฐ์ฒด๋ฅผ
ํ”ผํ•  ์ˆ˜ ์—†๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ตœ์ ํ™”๋งŒ ๋ฏฟ์„ ๋ฟ์ด๋‹ค.
๋ฐ˜ํ™˜ ๊ฐ’ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์ž
โ€ข ์ง€์—ญ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฐธ์กฐ์ž๋กœ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ํฌ์ธํ„ฐ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ผ์€
ํ•˜์ง€ ๋ง์ž.
โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™” ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.
์˜ค๋ฒ„๋กœ๋”ฉ์€ ๋ถˆํ•„์š”ํ•œ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์„ ๋ง‰๋Š”๋‹ค.
โ€ข ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์€ ์ •๋ง ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์ž„์‹œ๊ฐ์ฒด์˜ ์ƒ์„ฑ์€ ์šฐ๋ฆฌ๊ฐ€
์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข ํ•จ์ˆ˜์˜ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ค€๋น„ํ•จ์œผ๋กœ์จ ์•”์‹œ
์  ํƒ€์ž…๋ณ€ํ™˜์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
โ€ข ์˜ค๋ฒ„๋กœ๋”ฉ ๋˜๋Š” ์—ฐ์‚ฐ์ž ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์ตœ์†Œํ•œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ์‚ฌ์šฉ
์žํƒ€์ž…์ด ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค.
โ€ข ๋ฌผ๋ก  ํ”„๋กœ๊ทธ๋žจ์˜ ํšจ์œจ์€ ๊ณ ๋ คํ•˜์ž ์‚ฌ์šฉํ•˜์ง€๋„ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ์Œ“์•„
๋†“์ง€ ๋ง์ž.
+๋ณด๋‹ค +=์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ•˜์ž
โ€ข ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ๋•Œ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋‹จ๋… ์—ฐ์‚ฐ์ž๋ฅผ
์ž‘์„ฑํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‘ ์—ฐ์‚ฐ์ž๋ฅผ ๊ด€๊ณ„ ์ง€์–ด ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.
โ€ข ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ์ž„์‹œ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋‹ค.
โ€ข ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค.
โ€ข ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋‹จ๋… ์—ฐ์‚ฐ์ž๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๋ฆ„์—†๋Š” ํ˜•ํƒœ์˜
์ž„์‹œ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž„์‹œ๊ฐ์ฒด ์ตœ์ ํ™”๋ฅผ
์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ๋ถ€ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.(์Šฌ๋ผ์ด๋“œ 19์žฅ ์ฐธ๊ณ )
์ • ์•ˆ ๋˜๋ฉด ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ž
โ€ข ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋ณ‘๋ชฉํ˜„์ƒ์ด ๋ฐœ๊ฒฌ๋œ๋‹ค๋ฉด ๊ทธ๋ƒฅ ๋ผ์ด๋ธŒ๋Ÿฌ
๋ฆฌ๋ฅผ ๋ฐ”๊ฟ”๋ผ. ๋น„์Šทํ•œ ๊ฑธ๋กœ.
โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๋ฐ”๊ฟ”๋„ ๋ˆˆ์— ๋„๊ฒŒ ์ˆ˜ํ–‰์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
โ€ข Stdio๊ฐ€ iostream๋ณด๋‹ค ์ง€๊ธˆ์€ ๋น ๋ฅด์ง€๋งŒ iostream์ด stdio๋ณด๋‹ค ๋นจ
๋ผ์งˆ ์ˆ˜ ์žˆ๋Š” ๋‚ ์ด ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.
โ€ข ์•„๋งˆ ๊ทธ๋• ๋‚ด๊ฐ€ ์€ํ‡ดํ–ˆ์„์ง€๋„(โ€ฆ.)
๊ฐ€์ƒํ•จ์ˆ˜, ๋‹ค์ค‘์ƒ์†, ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค, RTTI ์˜ ๋น„์šฉ
โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๊ฐ€์ƒ ํ…Œ์ด๋ธ”(vtbl)๊ณผ ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ํฌ์ธํ„ฐ
(vptr)๊ฐ€ ํ•จ๊ป˜ ์ƒ์„ฑ๋œ๋‹ค.
โ€ข Vtbl์€ ํ•จ์ˆ˜ํฌ์ธํ„ฐ์˜ ๋ฐฐ์—ด์ด๋ฉฐ ๊ฐ€์ƒํ•จ์ˆ˜์˜ ์„ ์–ธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ƒ
์†๋ฐ›์€ ํด๋ž˜์Šค์—๋„ ์ƒ์„ฑ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ƒํ•จ์ˆ˜์˜ ์‹œ์ž‘์ฃผ์†Œ(ํ•จ์ˆ˜
ํฌ์ธํ„ฐ)๋ฅผ ๋ฌผ๊ณ ์žˆ๋‹ค.
โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•œ ๋ชฉ์ ํŒŒ์ผ๋งˆ๋‹ค vtbl์„ ์ƒ์„ฑํ•˜๊ณ  ๋ง์ปค๊ฐ€ ์ค‘๋ณต์„
์ œ๊ฑฐํ•ด์ฃผ๊ฑฐ๋‚˜ heuristic์ด๋ผ๋Š” ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด์„œ vtbl์„ ๊ฐ€์งˆ ๋ชฉ์ 
ํŒŒ์ผ์„ ๊ฒฐ์ •ํ•ด์ค€๋‹ค.
โ€ข Inline๋„ ์•„๋‹ˆ๊ณ  ์ˆœ์ˆ˜๊ฐ€์ƒ ํ•จ์ˆ˜๋„ ์•„๋‹Œ ํ•จ์ˆ˜ ์ค‘ ์ฒซ ๋ฒˆ์งธ ์ •์˜๋ถ€๋ถ„
์— vtbl์„ ๋„ฃ๊ธฐ๋กœ ํ•˜๋Š” ๊ทœ์น™์ด๋‹ค.
โ€ข Heuristic๊ทœ์น™์€ ๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ inline์œผ๋กœ ๋„ˆ๋ฌด ๋งŽ์ด ์„ ์–ธํ•  ๋•Œ ์ ์šฉ
ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.
๊ฐ€์ƒ ํ•จ์ˆ˜
โ€ข Virtual์˜ ์˜๋ฏธ๋Š” โ€œํ˜ธ์ถœ ํ•  ํ•จ์ˆ˜๋ฅผ ๋Ÿฐํƒ€์ž„๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์„œ ๊ฒฐ์ •ํ•œ๋‹ค.โ€
์ด๋‹ค.
โ€ข Vptr์€ โ€ž์–ด๋–ค ๊ฐ์ฒด์— ๋Œ€ํ•ด ์–ด๋–ค vtbl์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€โ€Ÿ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
โ€ข ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ˆจ๊ฒจ์ง„ ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ํ˜•ํƒœ๋กœ ์„ ์–ธ๋œ๋‹ค.
โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๋งŒ ๋†“๊ณ  ์ˆ˜ํ–‰์„ฑ๋Šฅ์˜ ๋ฐœ๋ชฉ์„ ์žก๋Š”๋‹ค๊ณ  ๋ณด๊ธฐ๋Š” ํž˜๋“ค๋‹ค. ๊ณ 
์ž‘ ๋ช…๋ น์–ด ๋ช‡ ๊ฐœ๊ฐ€ ๋” ์‹คํ–‰๋˜๋Š” ์ˆ˜์ค€์ด๋‹ค.
โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๋Š” inline์„ ํฌ๊ธฐํ•ด์•ผ ํ•œ๋‹ค. (์ฐธ์กฐ์ž๋‚˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ• 
๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฐธ์กฐ์ž๋‚˜ ํฌ์ธํ„ฐ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.)
๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค
โ€ข ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ํ•˜๋‚˜์˜ ํŒŒ์ƒํด๋ž˜์Šค์—์„œ ๊ธฐ๋ณธํด๋ž˜์Šค๊นŒ์ง€์˜ ๊ธธ์ด
๋‘ ๊ฐ€์ง€์ผ ๋•Œ ๊ธฐ๋ณธํด๋ž˜์Šค๊ฐ€ ์ค‘๋ณต๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„
์š”ํ•˜๋‹ค.
โ€ข ์ž˜ ์ƒ๊ฐํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ vptr๊ณผ vtbl์ด ์ƒ์„ฑ๋˜
๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
RTTI ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ์‹๋ณ„
โ€ข RTTI๋Š” ์‹คํ–‰ ์ค‘์— ๊ฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด
์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹น์—ฐํžˆ ํ•„์š”ํ•˜๋‹ค.
โ€ข ์ด ์ •๋ณด๋Š” type_info๋ผ๋Š” ๊ฐ์ฒด์— ์ €์žฅ๋˜๋ฉฐ, typeid์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ
ํ•ด์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข RTTL์€ vtbl์„ ํ†ตํ•ด์„œ๋งŒ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด
๋‹น ํด๋ž˜์Šค์— ๊ฐ€์ƒํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜๋Š” ๊ผญ ๋“ค์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค.

More Related Content

What's hot

5 6 1
5 6 15 6 1
5 6 1nexthw
ย 
effective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌeffective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌInjae Lee
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€quxn6
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Injae Lee
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝNam Hyeonuk
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””quxn6
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””quxn6
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ต์„ฑ ์กฐ
ย 
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””quxn6
ย 
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌEffective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ์—ฐ์šฐ ๊น€
ย 
M1 2 1
M1 2 1M1 2 1
M1 2 1nexthw
ย 
Effective c++ ์ •๋ฆฌ chapter 6
Effective c++ ์ •๋ฆฌ chapter 6Effective c++ ์ •๋ฆฌ chapter 6
Effective c++ ์ •๋ฆฌ chapter 6์—ฐ์šฐ ๊น€
ย 
Effective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinDong Chan Shin
ย 
Effective C++ Chapter 1 Summary
Effective C++ Chapter 1 SummaryEffective C++ Chapter 1 Summary
Effective C++ Chapter 1 SummarySeungYeonChoi10
ย 
More effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจMore effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจInjae Lee
ย 
Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4์—ฐ์šฐ ๊น€
ย 
Effective C++ ์ •๋ฆฌ chapter 3
Effective C++ ์ •๋ฆฌ chapter 3Effective C++ ์ •๋ฆฌ chapter 3
Effective C++ ์ •๋ฆฌ chapter 3์—ฐ์šฐ ๊น€
ย 

What's hot (20)

5 6 1
5 6 15 6 1
5 6 1
ย 
effective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌeffective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝ
ย 
Effective c++ 1,2
Effective c++ 1,2Effective c++ 1,2
Effective c++ 1,2
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
ย 
Effective C++ Chaper 1
Effective C++ Chaper 1Effective C++ Chaper 1
Effective C++ Chaper 1
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
ย 
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
ย 
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌEffective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
ย 
M1 2 1
M1 2 1M1 2 1
M1 2 1
ย 
Effective c++ ์ •๋ฆฌ chapter 6
Effective c++ ์ •๋ฆฌ chapter 6Effective c++ ์ •๋ฆฌ chapter 6
Effective c++ ์ •๋ฆฌ chapter 6
ย 
Effective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshin
ย 
Effective C++ Chapter 1 Summary
Effective C++ Chapter 1 SummaryEffective C++ Chapter 1 Summary
Effective C++ Chapter 1 Summary
ย 
Effective c++chapter3
Effective c++chapter3Effective c++chapter3
Effective c++chapter3
ย 
More effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจMore effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจ
ย 
Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4
ย 
Effective C++ ์ •๋ฆฌ chapter 3
Effective C++ ์ •๋ฆฌ chapter 3Effective C++ ์ •๋ฆฌ chapter 3
Effective C++ ์ •๋ฆฌ chapter 3
ย 

Viewers also liked

์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜
์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜
์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜ํ˜„์ฐฌ ์–‘
ย 
Open gl ์‹œ์ž‘ํ•˜๊ธฐ
Open gl ์‹œ์ž‘ํ•˜๊ธฐOpen gl ์‹œ์ž‘ํ•˜๊ธฐ
Open gl ์‹œ์ž‘ํ•˜๊ธฐํ˜„์ฐฌ ์–‘
ย 
์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ
์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ
์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌํ˜„์ฐฌ ์–‘
ย 

Viewers also liked (6)

์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜
์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜
์ดˆ๋“ฑํ•™์ƒ๋„ ํ•˜๋Š” ๊ทธ๋ƒฅ DB์„ค์น˜
ย 
Open gl ์‹œ์ž‘ํ•˜๊ธฐ
Open gl ์‹œ์ž‘ํ•˜๊ธฐOpen gl ์‹œ์ž‘ํ•˜๊ธฐ
Open gl ์‹œ์ž‘ํ•˜๊ธฐ
ย 
Mesh slice 1
Mesh slice 1Mesh slice 1
Mesh slice 1
ย 
์ฟผํ„ฐ๋‹ˆ์–ธ
์ฟผํ„ฐ๋‹ˆ์–ธ์ฟผํ„ฐ๋‹ˆ์–ธ
์ฟผํ„ฐ๋‹ˆ์–ธ
ย 
Effective c++ 3
Effective c++ 3Effective c++ 3
Effective c++ 3
ย 
์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ
์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ
์‹ค์ „ํ”„๋กœ์ ํŠธ ์ •์„œ๊ฒฝ ์–‘ํ˜„์ฐฌ
ย 

Similar to More effective c++ 2

More effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4ppt
More effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4pptMore effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4ppt
More effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4pptInjae Lee
ย 
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์ˆ˜๋นˆ ๋ฐ•
ย 
Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Shin heemin
ย 
M3 4 1
M3 4 1M3 4 1
M3 4 1nexthw
ย 
Effective java
Effective javaEffective java
Effective javaHaeil Yi
ย 
Chapter7~9 ppt
Chapter7~9 pptChapter7~9 ppt
Chapter7~9 pptInjae Lee
ย 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summarySehyeon Nam
ย 
Effective STL 1~4์žฅ ์ •๋ฆฌ
Effective STL 1~4์žฅ ์ •๋ฆฌEffective STL 1~4์žฅ ์ •๋ฆฌ
Effective STL 1~4์žฅ ์ •๋ฆฌShin heemin
ย 
C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ
 C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ
C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจHyunJoon Park
ย 
1 2 1
1 2 11 2 1
1 2 1nexthw
ย 
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++Min-soo Park
ย 
More Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจMore Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจInjae Lee
ย 
Microsoft pp lpdf
Microsoft pp lpdfMicrosoft pp lpdf
Microsoft pp lpdfHYUNWOO KIM
ย 
2013 C++ Study For Students #1
2013 C++ Study For Students #12013 C++ Study For Students #1
2013 C++ Study For Students #1Chris Ohk
ย 
Chapter5 ~ 6
Chapter5 ~ 6Chapter5 ~ 6
Chapter5 ~ 6Injae Lee
ย 

Similar to More effective c++ 2 (20)

Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4
ย 
MEC++ 3,4
MEC++ 3,4MEC++ 3,4
MEC++ 3,4
ย 
More effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4ppt
More effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4pptMore effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4ppt
More effective c++ แ„Žแ…ขแ†ธแ„แ…ฅ3~4ppt
ย 
Effective c++ chapter 7,8
Effective c++ chapter 7,8Effective c++ chapter 7,8
Effective c++ chapter 7,8
ย 
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
ย 
More effective c++ chapter1,2
More effective c++ chapter1,2More effective c++ chapter1,2
More effective c++ chapter1,2
ย 
Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ
ย 
M3 4 1
M3 4 1M3 4 1
M3 4 1
ย 
Effective java
Effective javaEffective java
Effective java
ย 
Chapter7~9 ppt
Chapter7~9 pptChapter7~9 ppt
Chapter7~9 ppt
ย 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
ย 
Effective STL 1~4์žฅ ์ •๋ฆฌ
Effective STL 1~4์žฅ ์ •๋ฆฌEffective STL 1~4์žฅ ์ •๋ฆฌ
Effective STL 1~4์žฅ ์ •๋ฆฌ
ย 
C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ
 C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ
C++ Advanced ๊ฐ•์˜ 4์ฃผ์ฐจ
ย 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
ย 
1 2 1
1 2 11 2 1
1 2 1
ย 
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
NHNNEXT ๊ฐœ๊ฒฝํ”„14 Subway Rocket Team Study 3rd C++
ย 
More Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจMore Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจ
ย 
Microsoft pp lpdf
Microsoft pp lpdfMicrosoft pp lpdf
Microsoft pp lpdf
ย 
2013 C++ Study For Students #1
2013 C++ Study For Students #12013 C++ Study For Students #1
2013 C++ Study For Students #1
ย 
Chapter5 ~ 6
Chapter5 ~ 6Chapter5 ~ 6
Chapter5 ~ 6
ย 

More effective c++ 2

  • 2. ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๊ฒฐ๋ก ์€ ์˜ˆ์™ธ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋„๋ก ์ปดํŒŒ์ผ ํ•˜๋ผ
  • 3. ๋ฆฌ์†Œ์Šค ๋ˆ„์ˆ˜๋ฐฉ์ง€๋Š” ์†Œ๋ฉธ์ž๋กœ โ€ข ์ง€์—ญ๋ฆฌ์†Œ์Šค(์Šคํƒ ํ• ๋‹น)๋ฅผ ๋ฌผ๊ณ  ์žˆ๋Š” ํฌ์ธํ„ฐ์™€ ์ด๋ณ„ํ•˜์ž โ€ข ๋งค๋ฒˆ ์˜ˆ์™ธ์— delete๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค. โ€ข Try-catch๋ฌธ์€ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์งˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ  ์žˆ ๋‹ค. โ€ข ์†Œ๋ฉธ์ž์— delete๋ฅผ ๋ฌผ๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์ธ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ž โ€ข ์œˆ๋„์šฐ ์‹œ์Šคํ…œ API๋“ค์€ c์Šคํƒ€์ผ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • 4. ์œˆ๋„์šฐ ์‹œ์Šคํ…œ API๋“ค์˜ ๊ด€๋ฆฌ๋ฒ• โ€ข ๋ฆฌ์†Œ์Šค๋ฅผ ์–ป์–ด๋‚ด๋Š” ์ƒ์„ฑ์ž์™€ ํ•ด์ œํ•˜๋Š” ์†Œ๋ฉธ์ž๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ์ด ์šฉํ•˜์—ฌ c์Šคํƒ€์ผ API๋“ค์„ ๊ด€๋ฆฌํ•˜์ž
  • 5. ์ƒ์„ฑ์ž์—์„œ๋Š” ๋ˆ„์ˆ˜๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก โ€ข Operator new๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์œ„ํ—˜์ด ์žˆ๋‹ค. โ€ข C++์—์„œ๋Š” ์ƒ์„ฑ์ด ์•ˆ์ „ํ•˜๊ฒŒ ์™„๋ฃŒ๋œ ๊ฐ์ฒด์— ๊ด€ํ•ด์„œ๋งŒ ์†Œ๋ฉธ์ž๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. โ€ข ์ด๋Ÿฐ ์ ์„ ์—ผ๋‘ํ•˜๊ณ  ์ƒ์„ฑ์ž๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค. โ€ข ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊นŒ๋‹ค๋กœ์šด ์„ค๊ณ„๋ฌธ์ œ๋“ค์„ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 6. ์†Œ๋ฉธ์ž์—์„œ๋Š” ์˜ˆ์™ธ๊ฐ€ ํƒˆ์ถœํ•  ์ˆ˜ ์—†๋„๋ก โ€ข ์†Œ๋ฉธ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‘ ๊ฐ€์ง€์ด๋‹ค. โ€ข ์ฒซ์งธ๋Š” ํ†ต์ƒ์ ์ธ ์†Œ๋ฉธ์ด๋‹ค. ์ฆ‰ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๊ฐ€ ์œ ํšจ๋ฒ” ์œ„์—์„œ ๋ฒ—์–ด๋‚˜ ์†Œ๋ฉธ๋˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. โ€ข ๋‘˜์งธ์˜ ๊ฒฝ์šฐ๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋  ๊ฒฝ์šฐ์ด ๋‹ค. โ€ข ํ•˜์ง€๋งŒ ์†Œ๋ฉธ์ž ์•ˆ์—์„œ๋Š” ์–ด๋Š ๊ฒฝ์šฐ์— ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.
  • 7. ์†Œ๋ฉธ์ž ์ž‘์„ฑ์‹œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํƒœ๋กœ ๊ฐ€์ •ํ•˜์ž โ€ข ์†Œ๋ฉธ์ž๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ฐฉ์–ด์ ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. โ€ข ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋Š” ๋„์ค‘ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์™ธ ๋•Œ๋ฌธ์— ํ๋ฆ„์ด ์†Œ ๋ฉธ์ž ํ•จ์ˆ˜๋ฅผ ๋– ๋‚˜๋ฉด C++์—์„œ๋Š” terminateํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. โ€ข Terminateํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์นผ๊ฐ™์ด ์ข…๋ฃŒ์‹œ์ผœ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์—ญ๊ฐ์ฒด ์กฐ์ฐจ๋„ ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š”๋‹ค. โ€ข ๋”ฐ๋ผ์„œ ์†Œ๋ฉธ์ž ์•ˆ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์†Œ๋ฉธ์ž๋ฅผ ํƒˆ์ถœํ•˜๊ฒŒ ๋˜ ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋“ค์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.
  • 8. ์˜ˆ์™ธ ๋ฐœ์ƒ์€ ๋งค๊ฐœ๋ณ€์ˆ˜์ „๋‹ฌ, ๊ฐ€์ƒํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๋‹ค๋ฅด๋‹ค. โ€ข ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ catch๋ฌธ์€ ์ƒ๊ธด ๊ฒƒ๋„ ์—ญํ• ๋„ ๋น„์Šทํ•˜๋‹ค. โ€ข ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์€ ํ•จ์ˆ˜ ์ข…๋ฃŒ์‹œ ํ๋ฆ„์ด ํ˜ธ์ถœํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค ์ง€๋งŒ catch๋ฌธ์€ throw๋ฅผ ํ˜ธ์ถœํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค์ง€ ์•Š๋Š” ๋‹ค.(goto๋ฌธ๊ณผ ๋น„์Šทํ•˜๋‹ค. ํ๋ฆผ์„ ๊นจ๋ฒ„๋ฆฐ๋‹ค.) โ€ข ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ธ์ž๊ฐ€ Catch by value๊ฐ€ ๋˜๋“  Catch by reference๊ฐ€ ๋˜๋“  ์‚ฌ๋ณธ์ƒ์„ฑ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ๋‹ค๋งŒ ์‚ฌ๋ณธ ์ƒ์„ฑ ํšŸ์ˆ˜ ๊ฐ€ ๋‹ค๋ฅด๋‹ค. Value๋Š” 2๋ฒˆ Reference๋Š” 1๋ฒˆ ์ƒ์„ฑ๋œ๋‹ค. โ€ข ํฌ์ธํ„ฐ์— ์˜ํ•œ ์ „๋‹ฌ์€ ํ•จ์ˆ˜๋ž‘ ๊ฐ™๋‹ค. โ€ข ์ง€์—ญ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋Š” ๋„˜๊ฒจ๋ด์•ผ ์†Œ์šฉ์—†๋‹ค. ๊ฒฐ๊ตญ์€ ์œ ํšจ๋ฒ”์œ„ ๋ฅผ ๋„˜์–ด์„œ๋ฉด ์†Œ๋ฉธ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • 9. ๋™์  ํƒ€์ž…๊ณผ ์ •์  ํƒ€์ž… ๋ณต์‚ฌ โ€ข ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ๋•Œ๋Š” ์ƒ์ˆ˜ ์ฐธ์กฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†๋‹ค. ๊ทธ๋ƒฅ ์ฐธ์กฐ ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ข ์˜ˆ์™ธ๋ฅผ ์ „ํŒŒํ•˜๋Š” ๊ฒฝ์šฐ rethrow๋ฅผ ์ด์šฉํ•˜์ž. Rethrow๋Š” ๊ฐ์ฒด์˜ ๋ณต ์‚ฌ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. โ€ข Rethorw๋ž€ catch๋ฌธ์•ˆ์—์„œ throw;๋ฅผ ํ–ˆ์„ ๋•Œ๋ฅผ ๋œปํ•œ๋‹ค.
  • 10. ์˜ˆ์™ธ์™€ ํƒ€์ž…๋ณ€ํ™˜ โ€ข ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ˆ์™ธ๋Š” ์•”์‹œ์ ์ธ ํƒ€์ž…๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. โ€ข ๋‹ค๋งŒ ์ƒ์†๊ด€๊ณ„์˜ ํƒ€์ž…๊ณผ ํฌ์ธํ„ฐ๋กœ๋ถ€ํ„ฐ void*๋กœ์˜ ํƒ€์ž…๋ณ€ํ™˜์€ ํ—ˆ ์šฉ๋œ๋‹ค. โ€ข ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ โ€ž๊ฐ€์žฅ ์ฒซ์งธ์˜ ๊ฒƒ์„ ์„ ํƒํ•˜๋Š”โ€Ÿ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋”ฐ ๋ฆ…๋‹ˆ๋‹ค. Try catch๋ฌธ ์ž๋™์™„์„ฑ์„ vs์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ ‡๊ฒŒ ๊ธฐ๋ณธ์ ์œผ๋กœ 3๊ฐœ์˜ catch๋ฌธ์ด ์ƒ์„ฑ๋œ๋‹ค. ์•„๋ž˜๋กœ ๊ฐˆ์ˆ˜๋ก ๋ถ€๋ชจ์ด๋‹ค.
  • 11. ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋Š” ์ฐธ์กฐ์ž๋กœ โ€ข C++์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€์˜ˆ์™ธ๋Š” ์ „๋ถ€ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค. โ€ข Catch by pointer๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค. โ€ข ์ „์—ญ๋ณ€์ˆ˜๋‚˜ ํž™์— ํ• ๋‹น๋œ ๊ฒฝ์šฐ์—๋งŒ ์œ ์šฉํ•  ๋ฟ๋”๋Ÿฌ ๊ด€๋ฆฌ๋„ ํž˜๋“ค๊ณ  delete์—ฌ๋ถ€๋„ ์•Œ๊ธฐ ํž˜๋“ค๋‹ค. โ€ข Catch by value๋Š” 2๋ฒˆ ์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ slicing problem์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. โ€ข Slicing problem์€ ๋ถ€๋ชจ์˜ ๊ฐ์ฒด์˜์—ญ๋งŒ ๋ณต์‚ฌ๋˜์–ด ์ž์‹์˜ ์˜์—ญ์ด ์ž˜๋ ค๋‚˜๊ฐ€๋Š” ํ˜„์ƒ์ด๋‹ค.
  • 12. ์˜ˆ์™ธ์ง€์ •๊ธฐ๋Šฅ์€ ๋ƒ‰์ฒ ํ•˜๊ฒŒ โ€ข ํ•จ์ˆ˜๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ฌ ์˜ˆ์™ธ๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ์˜ˆ์™ธ์ง€์ • ์ด๋ผ๊ณ  ํ•œ๋‹ค. โ€ข ์˜ˆ์™ธ์ง€์ •์— ์ผ๊ด€์„ฑ์ด ์—†์„ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ ๋„์ค‘ ๋ฐœ๊ฒฌํ•ด์ฃผ๊ณ  ํ•จ์ˆ˜๊ฐ€ ์˜ˆ์™ธ์ง€์ • ๋ฆฌ์ŠคํŠธ์— ์—†๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ์™€ ํ•จ ๊ป˜ unexpected๋ผ๋Š” ํŠน์ˆ˜ ํ•จ์ˆ˜๊ฐ€ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋œ๋‹ค. โ€ข ๋ฌธ์ œ๋Š” unexpectedํ•จ์ˆ˜๊ฐ€ terminate๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์ด์— ๋Œ€ํ•ด์„œ ๋Š” ์•Œ๊ณ  ์žˆ๋“ฏ ๊ทธ๋ƒฅ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”์–ด ๋ฒ„๋ฆฐ๋‹ค. โ€ข Unexpectedํ•จ์ˆ˜๋Š” ๋งค์šฐ ์‰ฝ๊ฒŒ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ์ง€์ •์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • 13. Unexpectedํ•จ์ˆ˜์˜ ๋‚˜๋ฝ์„ ๋ง‰๋Š” ๋ฒ• โ€ข ์˜ˆ์™ธ ์ง€์ •๋œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ์™€ ์˜ˆ์™ธ์ง€์ •์ด ์•ˆ๋œ ์˜›๋‚  ์ฝ”๋“œ๊ฐ€ ์„ž์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•˜์ž โ€ข ์˜ˆ์™ธ์ง€์ •์ด ์•ˆ ๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜์—๋Š” ์˜ˆ์™ธ ์ง€์ •์„ ๋‘์ง€ ์•Š๋Š”๋‹ค. โ€ข ํ…œํ”Œ๋ฆฟ๊ณผ ์˜ˆ์™ธ์ง€์ •์€ ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž โ€ข โ€œ์‹œ์Šคํ…œโ€์ด ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์˜ˆ์™ธ(C++ํ‘œ์ค€ ์˜ˆ์™ธ)๋ฅผ ์ฒ˜๋ฆฌํ•˜ ์ž โ€ข ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์„ ํ†ตํ•ด unexpectedํ•จ์ˆ˜๋ฅผ ๋Œ€์ฒดํ•  ์‚ฌ์šฉ์ž์˜ ํ•จ ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.
  • 14. ์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ๋“œ๋Š” ๋น„์šฉ โ€ข ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋“ค์–ด๊ฐ€๋Š” ๋‚ด๋ถ€์ ์ธ ๋น„์šฉ์€ ์กด์žฌํ•œ ๋‹ค. โ€ข ์˜ˆ์™ธ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ์ž‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ์˜ˆ์™ธ๊ธฐ๋Šฅ ์—†์ด ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ ์ตœ์ ํ™”์— ์ƒ๋‹นํ•œ ๊ธฐ๋Šฅ์„ ์ค€๋‹ค. โ€ข Try๋ธ”๋ก์œผ๋กœ ์ธํ•ด ์ƒ๊ธฐ๋Š” ๋น„์šฉ์ด ์žˆ๋‹ค. ์“ธ๋ฐ์—†์ด try๋ธ”๋ก์„ ๋‚จ๋ฐœ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค. โ€ข ์šฐ์„  ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์˜ˆ์™ธ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋„๋ก ์ปดํŒŒ์ผ ํ•˜๋ผ.
  • 15. 80 - 20 โ€ข ํ”„๋กœ๊ทธ๋žจ ๋ฆฌ์†Œ์Šค์˜ 80%๋Š” ์ „์ฒด ์‹คํ–‰ ์ฝ”๋“œ์˜ 20%๋งŒ์ด ์‚ฌ์šฉํ•œ๋‹ค. โ€ข ์‹คํ–‰์˜ ํ•ต์‹ฌ์„ ๋‹ด๋‹นํ•˜๋Š” ์ฝ”๋“œ 20%๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ด ๋ถ€๋ถ„์„ ํšจ์œจ์  ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. โ€ข ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ์ž์‹ ์ด ์ง  ์ฝ”๋“œ๊ฐ€ ์–ด๋Š ์ •๋„์˜ ์ˆ˜ํ–‰ ์„ฑ ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค. โ€ข ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 20%๋ถ€๋ถ„์„ ์ฐพ์•„๋‚ด์ž โ€ข 20%๋ฅผ ๋šซ์–ด๋ณด๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค.
  • 16. ์ง€์—ฐํ‰๊ฐ€๋Š” ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•  ๋งŒํ•˜๋‹ค โ€ข ์ž‘์—… ๊ฒฐ๊ณผ๊ฐ€ ์ง„์งœ๋กœ ํ•„์š”ํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๊ทธ ์ฒ˜๋ฆฌ๋ฅผ ๋ฏธ๋ฃฌ๋‹ค. ์˜ˆ๋ฅผ ๋“ค ์–ด ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ 60์ดํ•˜๋กœ ๋–จ์–ด์ง€๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋œ ๋‹ค. โ€ข ์ง„์งœ ํ•„์š”ํ•ด์ง€๊ธฐ ์ „๊นŒ์ง€๋Š” ์ž๊ธฐ๋งŒ์˜ ๋ฐ์ดํ„ฐ ์‚ฌ๋ณธ์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋‚จ์˜ ๊ฒƒ์„ ๋Œ์–ด๋‹ค ์‚ฌ์šฉํ•œ๋‹ค โ€ข โ€ž์ง€์—ฐ๋œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐโ€Ÿ ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ง„์งœ๋กœ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์—๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๊ทธ ์ „๊นŒ์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ๊ฐ์ฒด์˜ ๊ป๋ฐ๊ธฐ ๋งŒ ์žˆ๋‹ค. โ€ข ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์€ ๋™์ž‘์„ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด ๋†“๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
  • 17. ์˜ˆ์ƒ๋˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•˜์ž โ€ข ๋ฏธ๋ฆฌ ์ค€๋น„ํ•˜๋ฉด ์ฒ˜๋ฆฌ ๋น„์šฉ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ข ์ƒ๋‹นํžˆ ์ž์ฃผ ์š”๊ตฌ๋  ๊ฒƒ ๊ฐ™์€ ๊ณ„์‚ฐ์ด ์žˆ๋‹ค๋ฉด, ๊ทธ ์š”๊ตฌ๋ฅผ ํšจ์œจ์ ์œผ ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜์—ฌ ๋น„์šฉ์„ ๋‚ฎ์ถ”์ž. โ€ข STL์‚ฌ์šฉ์‹œ iter->second๊ฐ€ ์•„๋‹Œ *(iter).second ์ด๋Ÿฐ ํ˜•ํƒœ๋กœ iterator๋ฅผ ์‚ฌ์šฉํ•˜์ž โ€ข CPU์˜ ์—ฐ์‚ฐ์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์“ธ ์ˆ˜๋ก ์†๋„ ๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.
  • 18. ์ž„์‹œ ๊ฐ์ฒด์˜ ๊ทผ์›์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜์ž โ€ข ์ž„์‹œ ๊ฐ์ฒด๋ž€ ์šฐ๋ฆฌ์ฝ”๋“œ์— ๋ณด์ด์ง€ ์•Š๋Š” ์ž„์‹œ๋กœ ๋งŒ๋“ค์–ด์ง„ โ€ž์ด๋ฆ„ ์—† ๋Š”โ€Ÿ ๊ฐ์ฒด์ด๋‹ค. โ€ข ํ•จ์ˆ˜ํ˜ธ์ถœ์„ ์„ฑ์‚ฌ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์ด ์ ์šฉ ๋  ๋•Œ ์ƒ์„ฑ ๋œ๋‹ค. โ€ข Return by value๋ฅผ ํ•  ๋•Œ ์ƒ์„ฑ๋œ๋‹ค. โ€ข ์•”์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ๋Š” ์˜ค์ง ๊ฐ์ฒด๊ฐ€ ๊ฐ’์œผ๋กœ ์ „๋‹ฌ ๋  ๊ฒฝ์šฐ์™€ reference to const(์ƒ์ˆ˜ ์ฐธ์กฐ์ž)๊ฐ€ ์ „๋‹ฌ๋  ๊ฒฝ์šฐ์ด๋‹ค. โ€ข ๊ฐ์ฒด๋ฅผ value๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํ•จ์ˆ˜๋Š” ๋ฐ˜ํ™˜ ์‹œ ์ž„์‹œ๊ฐ์ฒด๋ฅผ ํ”ผํ•  ์ˆ˜ ์—†๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ตœ์ ํ™”๋งŒ ๋ฏฟ์„ ๋ฟ์ด๋‹ค.
  • 19. ๋ฐ˜ํ™˜ ๊ฐ’ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์ž โ€ข ์ง€์—ญ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฐธ์กฐ์ž๋กœ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ํฌ์ธํ„ฐ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ผ์€ ํ•˜์ง€ ๋ง์ž. โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™” ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.
  • 20. ์˜ค๋ฒ„๋กœ๋”ฉ์€ ๋ถˆํ•„์š”ํ•œ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์„ ๋ง‰๋Š”๋‹ค. โ€ข ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์€ ์ •๋ง ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์ž„์‹œ๊ฐ์ฒด์˜ ์ƒ์„ฑ์€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. โ€ข ํ•จ์ˆ˜์˜ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ค€๋น„ํ•จ์œผ๋กœ์จ ์•”์‹œ ์  ํƒ€์ž…๋ณ€ํ™˜์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค. โ€ข ์˜ค๋ฒ„๋กœ๋”ฉ ๋˜๋Š” ์—ฐ์‚ฐ์ž ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์ตœ์†Œํ•œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ์‚ฌ์šฉ ์žํƒ€์ž…์ด ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค. โ€ข ๋ฌผ๋ก  ํ”„๋กœ๊ทธ๋žจ์˜ ํšจ์œจ์€ ๊ณ ๋ คํ•˜์ž ์‚ฌ์šฉํ•˜์ง€๋„ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ์Œ“์•„ ๋†“์ง€ ๋ง์ž.
  • 21. +๋ณด๋‹ค +=์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ•˜์ž โ€ข ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ๋•Œ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋‹จ๋… ์—ฐ์‚ฐ์ž๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‘ ์—ฐ์‚ฐ์ž๋ฅผ ๊ด€๊ณ„ ์ง€์–ด ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. โ€ข ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ์ž„์‹œ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋‹ค. โ€ข ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค. โ€ข ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ๋‹จ๋… ์—ฐ์‚ฐ์ž๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๋ฆ„์—†๋Š” ํ˜•ํƒœ์˜ ์ž„์‹œ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž„์‹œ๊ฐ์ฒด ์ตœ์ ํ™”๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ๋ถ€ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.(์Šฌ๋ผ์ด๋“œ 19์žฅ ์ฐธ๊ณ )
  • 22. ์ • ์•ˆ ๋˜๋ฉด ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์“ฐ์ž โ€ข ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋ณ‘๋ชฉํ˜„์ƒ์ด ๋ฐœ๊ฒฌ๋œ๋‹ค๋ฉด ๊ทธ๋ƒฅ ๋ผ์ด๋ธŒ๋Ÿฌ ๋ฆฌ๋ฅผ ๋ฐ”๊ฟ”๋ผ. ๋น„์Šทํ•œ ๊ฑธ๋กœ. โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๋ฐ”๊ฟ”๋„ ๋ˆˆ์— ๋„๊ฒŒ ์ˆ˜ํ–‰์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. โ€ข Stdio๊ฐ€ iostream๋ณด๋‹ค ์ง€๊ธˆ์€ ๋น ๋ฅด์ง€๋งŒ iostream์ด stdio๋ณด๋‹ค ๋นจ ๋ผ์งˆ ์ˆ˜ ์žˆ๋Š” ๋‚ ์ด ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค. โ€ข ์•„๋งˆ ๊ทธ๋• ๋‚ด๊ฐ€ ์€ํ‡ดํ–ˆ์„์ง€๋„(โ€ฆ.)
  • 23. ๊ฐ€์ƒํ•จ์ˆ˜, ๋‹ค์ค‘์ƒ์†, ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค, RTTI ์˜ ๋น„์šฉ โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๊ฐ€์ƒ ํ…Œ์ด๋ธ”(vtbl)๊ณผ ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ํฌ์ธํ„ฐ (vptr)๊ฐ€ ํ•จ๊ป˜ ์ƒ์„ฑ๋œ๋‹ค. โ€ข Vtbl์€ ํ•จ์ˆ˜ํฌ์ธํ„ฐ์˜ ๋ฐฐ์—ด์ด๋ฉฐ ๊ฐ€์ƒํ•จ์ˆ˜์˜ ์„ ์–ธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ƒ ์†๋ฐ›์€ ํด๋ž˜์Šค์—๋„ ์ƒ์„ฑ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ƒํ•จ์ˆ˜์˜ ์‹œ์ž‘์ฃผ์†Œ(ํ•จ์ˆ˜ ํฌ์ธํ„ฐ)๋ฅผ ๋ฌผ๊ณ ์žˆ๋‹ค. โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•œ ๋ชฉ์ ํŒŒ์ผ๋งˆ๋‹ค vtbl์„ ์ƒ์„ฑํ•˜๊ณ  ๋ง์ปค๊ฐ€ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ๊ฑฐ๋‚˜ heuristic์ด๋ผ๋Š” ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด์„œ vtbl์„ ๊ฐ€์งˆ ๋ชฉ์  ํŒŒ์ผ์„ ๊ฒฐ์ •ํ•ด์ค€๋‹ค. โ€ข Inline๋„ ์•„๋‹ˆ๊ณ  ์ˆœ์ˆ˜๊ฐ€์ƒ ํ•จ์ˆ˜๋„ ์•„๋‹Œ ํ•จ์ˆ˜ ์ค‘ ์ฒซ ๋ฒˆ์งธ ์ •์˜๋ถ€๋ถ„ ์— vtbl์„ ๋„ฃ๊ธฐ๋กœ ํ•˜๋Š” ๊ทœ์น™์ด๋‹ค. โ€ข Heuristic๊ทœ์น™์€ ๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ inline์œผ๋กœ ๋„ˆ๋ฌด ๋งŽ์ด ์„ ์–ธํ•  ๋•Œ ์ ์šฉ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.
  • 24. ๊ฐ€์ƒ ํ•จ์ˆ˜ โ€ข Virtual์˜ ์˜๋ฏธ๋Š” โ€œํ˜ธ์ถœ ํ•  ํ•จ์ˆ˜๋ฅผ ๋Ÿฐํƒ€์ž„๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์„œ ๊ฒฐ์ •ํ•œ๋‹ค.โ€ ์ด๋‹ค. โ€ข Vptr์€ โ€ž์–ด๋–ค ๊ฐ์ฒด์— ๋Œ€ํ•ด ์–ด๋–ค vtbl์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€โ€Ÿ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. โ€ข ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ˆจ๊ฒจ์ง„ ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ํ˜•ํƒœ๋กœ ์„ ์–ธ๋œ๋‹ค. โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๋งŒ ๋†“๊ณ  ์ˆ˜ํ–‰์„ฑ๋Šฅ์˜ ๋ฐœ๋ชฉ์„ ์žก๋Š”๋‹ค๊ณ  ๋ณด๊ธฐ๋Š” ํž˜๋“ค๋‹ค. ๊ณ  ์ž‘ ๋ช…๋ น์–ด ๋ช‡ ๊ฐœ๊ฐ€ ๋” ์‹คํ–‰๋˜๋Š” ์ˆ˜์ค€์ด๋‹ค. โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๋Š” inline์„ ํฌ๊ธฐํ•ด์•ผ ํ•œ๋‹ค. (์ฐธ์กฐ์ž๋‚˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฐธ์กฐ์ž๋‚˜ ํฌ์ธํ„ฐ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.)
  • 25. ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค โ€ข ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ํ•˜๋‚˜์˜ ํŒŒ์ƒํด๋ž˜์Šค์—์„œ ๊ธฐ๋ณธํด๋ž˜์Šค๊นŒ์ง€์˜ ๊ธธ์ด ๋‘ ๊ฐ€์ง€์ผ ๋•Œ ๊ธฐ๋ณธํด๋ž˜์Šค๊ฐ€ ์ค‘๋ณต๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„ ์š”ํ•˜๋‹ค. โ€ข ์ž˜ ์ƒ๊ฐํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ vptr๊ณผ vtbl์ด ์ƒ์„ฑ๋˜ ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • 26. RTTI ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ์‹๋ณ„ โ€ข RTTI๋Š” ์‹คํ–‰ ์ค‘์— ๊ฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹น์—ฐํžˆ ํ•„์š”ํ•˜๋‹ค. โ€ข ์ด ์ •๋ณด๋Š” type_info๋ผ๋Š” ๊ฐ์ฒด์— ์ €์žฅ๋˜๋ฉฐ, typeid์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ ํ•ด์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ข RTTL์€ vtbl์„ ํ†ตํ•ด์„œ๋งŒ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด ๋‹น ํด๋ž˜์Šค์— ๊ฐ€์ƒํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜๋Š” ๊ผญ ๋“ค์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค.