SlideShare a Scribd company logo
1 of 114
Effective C++_3
131043 ์–‘ํ˜„์ฐฌ
NHN NEXT
๊ตฌํ˜„
๋ณ€์ˆ˜์˜ ์ •์˜๋Š” ๋‚˜์ค‘์—
๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋„ˆ๋ฌด ์งง์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋„๋ก ๊ตฌํ˜„
์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด encrypted๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค
์ด๋ฒˆ์—๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋‹ค์Œ์— ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ
์ •์˜ ๋‹ค์Œ์— ๋Œ€์ž…์„ ํ•˜๊ณ  ์žˆ๋‹ค
๋‹ค์‹œ ํ•œ๋ฒˆ ์ด์•ผ๊ธฐํ•˜์ง€๋งŒ ์ดˆ๊ธฐํ™”์™€ ๋Œ€์ž…์€ ๋‹ค๋ฅด๋‹ค.
์˜ฌ๋ฐ”๋ฅธ ์ฝ”๋“œ
์ด๊ฑด ์–ด๋– ๋ƒ!
๋‹น์‹ ์˜ ์Šต๊ด€์€ ์–ด๋Š ์ชฝ์ธ๊ฐ€? ๋‚˜๋Š” ์™ผ์ชฝ์ด์—ˆ๋‹ค
์ƒ์„ฑ + ์†Œ๋ฉธ์ž > ๋Œ€์ž…์—ฐ์‚ฐ = A๋ฐฉ๋ฒ•
์ƒ์„ฑ + ์†Œ๋ฉธ์ž < ๋Œ€์ž…์—ฐ์‚ฐ = B๋ฐฉ๋ฒ•
A์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜ w์˜ ์œ ํšจ๋ฒ”์œ„๊ฐ€ ๋„“์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰์„ฑ๋Šฅ์— ๋ฏผ๊ฐํ•œ ๋ถ€๋ถ„์ด๋ผ๋ฉด B๋ฐฉ๋ฒ•
์บ์ŠคํŒ… ์“ฐ์ง€๋งˆ!
C++์˜ ์•…๋‹น๋“ค
์บ์ŠคํŒ…์— ๊ด€ํ•œ ์ดํ•ด
๋ช…์‹œ์ ์œผ๋กœ static_cast๋ฅผ ์‚ฌ์šฉํ•ฉ์‹œ๋‹ค
ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์ด๋‹คโ€ฆ.
๋‹ค์ค‘์ƒ์† ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹จ์ผ์ƒ์†์—์„œ๋„ ์ผ์–ด๋‚˜๋Š” ํ˜„์ƒ์ด๋‹ค
์ปดํŒŒ์ผ๋Ÿฌ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค.
์บ์ŠคํŒ… ์กฐ์‹ฌํ•˜์ž
ํ•จ์ˆ˜ํ˜ธ์ถœ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ฐ์ฒด๋Š” ํ˜„์žฌ์˜ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ค!
์บ์ŠคํŒ…์ด ์ผ์–ด๋‚˜๋ฉด์„œ this์˜ ๊ธฐ๋ณธ ํด๋ž˜์Šค ๋ถ€๋ถ„์˜ ์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋œ๋‹ค.
dynamic_cast
โ€ข ์ •๋ง ๋Š๋ฆฌ๋‹ค
โ€ข ์ •~~~๋ง ๋Š๋ฆฌ๋‹ค
โ€ข ๋Š๋ฆฌ๋‹ค
โ€ข ์•„์ฃผ ๋Š๋ฆฌ๋‹ค
โ€ข ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋Š๋ฆฌ๋‹ค
blink()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด์„œ dynamic_cast๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
SpecialWindow ์ด์™ธ Window์—์„œ ํŒŒ์ƒ๋˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ vector์— ๋‹ด์„ ์ˆ˜ ์—†์ง€๋งŒ ์บ์ŠคํŒ…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค.
ํ˜น์€ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ณธ ํด๋ž˜์Šค์— ๊ตฌํ˜„ํ•œ๋‹ค.
์ •๋ง ๋”์ฐํ•œ ์ฝ”๋“œ
๋งŒ์•ฝ Window์˜ ํŒŒ์ƒ ํด๋ž˜์Šค ๊ณ„์—ด์ด ๋ฐ”๋€Œ๋ฉด ์ง€์˜ฅ์ด ํŽผ์ณ์ง„๋‹ค.
๋‚ด๋ถ€ ๊ฐ์ฒด์˜ ํ•ธ๋“ค์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋ง์ž
์—ฌ๊ธฐ์„œ ํ•ธ๋“ค์ด๋ž€
โ€ข ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์†์„ ๋Œˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋งค๊ฐœ์ž
โ€ข ์ฐธ์กฐ์ž, ํฌ์ธํ„ฐ, ๋ฐ˜๋ณต์ž ๋“ฑ๋“ฑ ์ „๋ถ€ ํ•ธ๋“ค
โ€ข ์œˆ๋„์šฐ ์‹œ์Šคํ…œ์˜ ํ•ธ๋“ค๋„ ํ•ธ๋“ค
โ€ข ์ž๋™์ฐจ ํ•ธ๋“ค๋„ ํ•ธ๋“คโ€ฆ
โ€ข ํ•ธ๋“ค์ด๋ž€ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๋„ ํ•ธ๋“คโ€ฆโ€ฆ.
Private์œผ๋กœ ์„ ์–ธ๋œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. Public์ด๋‚˜ ๋‹ค๋ฆ„์—†์–ด ์ง„๋‹ค.
Const๋ฅผ ํ†ตํ•ด ์ˆ˜์ •์„ ๊ธˆ์ง€ํ•˜๊ณ  ์žˆ๋‹ค.
์—ฌ์ „ํžˆ ๋ฌดํšจ์ฐธ์กฐ ํ•ธ๋“ค์— ๋Œ€ํ•œ ์œ„ํ—˜์„ ์•ˆ๊ณ  ์žˆ๋‹ค.
๋งŒ์•ฝ pData๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค๋ฉด?
๋ฐ˜ํ™˜๋œ const Point& ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด
๋‚ด์šฉ์ด ์‚ฌ๋ผ์ง„ ์ฃผ์†Œ ๊ฐ’๋งŒ ๋ฌผ๊ณ  ์žˆ๋‹ค.
๋˜๋„๋ก์ด๋ฉด ์ตœ๋Œ€ํ•œ ํ”ผํ•˜์ž! ๊ฐ’๋งŒ ์ œ๊ณตํ•˜๋Š” ์šฉ๋„๋ผ๋ฉด ์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
์˜ˆ์™ธ์˜ ์•ˆ์ „์„ฑ์ด ํ™•๋ณด๋˜๋Š” ๊ทธ๋‚ ์„ ์œ„ํ•ด
๋Š๋‚Œ so bad
์˜ˆ์™ธ๊ฐ€ ์ž˜ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค๋ฉด?
์šฐ์„  ์ž์›๋ถ€ํ„ฐ
์•ž์—์„œ ์ž์›์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ์ž๋ฃŒ๊ตฌ์กฐ ์˜ค์—ผ
โ€ข ๊ธฐ๋ณธ์ ์ธ ๋ณด์žฅ
โ€ข ๊ฐ•๋ ฅํ•œ ๋ณด์žฅ
โ€ข ์˜ˆ์™ธ๋ถˆ๊ฐ€ ๋ณด์žฅ
โ€ข ๋ณดํ—˜๊ฐ€์ž…์€ ์ด์ˆœ์žฌ์”จ์™€ ํ•จ๊ป˜
๊ธฐ๋ณธ์ ์ธ ๋ณด์žฅ
โ€ข ์˜ˆ์™ธ๊ฐ€ ์ผ์–ด๋‚˜๋„ ๊ณ„์†ํ•ด์„œ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ณด์žฅ
โ€ข ๋ชจ๋“  ๊ฒƒ๋“ค์ด ์œ ํšจํ•œ ์ƒํƒœ๋กœ ์œ ์ง€
โ€ข ๋‚ด๋ถ€์ ์œผ๋กœ ์ผ๊ด€์„ฑ ์œ ์ง€
โ€ข ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ ์ƒํƒœ๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋– ํ•œ์ง€๋Š” ํŒŒ์•…ํ•˜๊ธฐ ํž˜๋“ค๋‹ค
๊ฐ•๋ ฅํ•œ ๋ณด์žฅ
โ€ข ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์—†์—ˆ๋˜ ์ผ๋กœํ•˜๊ณ  ์ƒํƒœ๋ฅผ ๋˜๋Œ๋ฆฐ๋‹ค
โ€ข ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜์˜ ๋™์ž‘์„ ์›์ž์  ๋™์ž‘์ด๋ผ๊ณ ๋„ ํ•จ
โ€ข ์“ฐ๊ธฐ ํŽธํ•˜๋‹ค.(์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋‘ ๊ฐ€์ง€ ๋ฟ์ด๋‹ค)
์˜ˆ์™ธ๋ถˆ๊ฐ€ ๋ณด์žฅ
โ€ข ์˜ˆ์™ธ๊ฐ€ ์ ˆ๋Œ€๋กœ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•œ๋‹ค
โ€ข ํ•œ๋ฒˆ ์•ฝ์†์€ ์˜์›ํ•œ ์•ฝ์†
โ€ข ๋ญ, ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ•œ๋ฒˆ ํ•ด๋ณด์„ธ์š”.
์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐ€์„œ
New์‹คํ–‰ ๋„์ค‘ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด reset์ด ๋™์ž‘ํ•˜์ง€ ์•Š์•„ reset์†์˜ delete๋„ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.
copy-and-swap
์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ณ  ์‚ฌ๋ณธ์„ ์ˆ˜์ •ํ•œ๋‹ค
์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ๋ณธ๋งŒ ์‚ฌ๋ผ์ง„๋‹ค.
๊ฐ•๋ คํฌํ•œ ๋ณด์žฅ์ด๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํ•จ์ˆ˜ ์ „์ฒด๊ฐ€ ๊ฐ•๋ คํฌํ•œ ๋ณด์žฅ์„ ํ•˜์ง€ ๋ชปํ•œ๋‹ค
f(1)์ด ๊ธฐ๋ณธ์ ์ธ ๋ณด์žฅ์ผ ๊ฒฝ์šฐ f(1)์˜ ์‹คํ–‰์œผ๋กœ ์ธํ•ด ์ด๋ฏธ ์ƒํƒœ๋ณ€ํ™”๋ฅผ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•œ๋‹ค.
์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ํ•ญ์ƒ ์ฃผ์˜ํ•˜๊ณ  ๋„˜์–ด๊ฐˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.
inline ํ•จ์ˆ˜, ์ž˜ ์ดํ•ดํ•˜์ž
Inline
โ€ข Inlineํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ๋งฅ ๋ณ„ ์ตœ์ ํ™”๋ฅผ ๊ฑธ๊ธฐ๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค.
โ€ข ๋‚จ๋ฐœํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ ์˜คํžˆ๋ ค ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค. (์šฉ๋Ÿ‰๋ฌธ์ œ๋„ ๊ณ 
๋ คํ•ด์•ผ ํ•œ๋‹ค.)
โ€ข ๊ธธ์ด๊ฐ€ ๊ต‰์žฅํžˆ ์งง์€ inlineํ•จ์ˆ˜๋Š” ์ฝ”๋“œ์˜ ํฌ๊ธฐ๋„ ์ค„์–ด๋“ค๊ณ  ๋นจ๋ผ
์งˆ ์ˆ˜ ์žˆ๋‹ค.
๋ช…๋ น์ด ์•„๋‹ˆ๋ผ ์š”์ฒญ
์ด๋Ÿฐ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•”์‹œ์ ์œผ๋กœ inline์„ ๊ฑธ์–ด๋ฒ„๋ฆฐ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” inlineํ•จ์ˆ˜ ํ˜•ํƒœ
template inline ๋‘˜ ๋‹ค ๋Œ€์ฒด์ ์œผ๋กœ ํ—ค๋”ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ template์— ์˜๋ฌด์ ์œผ๋กœ inline์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
ํ˜ธ์ถœ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค
Inline๋˜์ง€ ์•Š๋Š” inlineํ•จ์ˆ˜๋Š” ์˜คํžˆ๋ ค ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๋ฐœ๋ชฉ์„ ์žก๋Š”๋‹ค
์†์ง€๋ง์ž
์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž๋Š” ์ฐธ inline์„ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋งค์šฐ ์ข‹์•„ ๋ณด์ด์ง€๋งŒโ€ฆ
์œ„์™€ ๊ฐ™์ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์ฝ”๋“œ๋ฅผ ์ง‘์–ด๋„ฃ์–ด๋ฒ„๋ฆฐ๋‹ค.
ํŒŒ์ผ ์‚ฌ์ด ์ปดํŒŒ์ผ ์˜์กด์„ฑ์„ ์ค„์ด์ž
์šฐ๋ฆฌ์˜ ๊ณจ์นซ๋ฉ์ด๋“ค ์ „์ฒ˜๋ฆฌ๊ธฐ
๋งˆ์Œ ๊ฐ™์•„์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ „๋ฐฉ์„ ์–ธ์„ ํ•˜๊ณ  ์‹ถ๋‹ค.
ํ•˜์ง€๋งŒ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ „๋ฐฉ์„ ์–ธ์ด ์–ด๋ ต๋‹ค.(์œ„์˜ ๊ฒฝ์šฐ string์€
typedef์— ํ…œํ”Œ๋ฆฟ๊นŒ์ง€ ์‚ฌ์šฉ๋˜์–ด ์žฌ๋Œ€๋กœ ์„ ์–ธํ•˜๊ธฐ ํž˜๋“ค๋‹ค.)
์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํด๋ž˜์Šค๋ผ๋„ ์ •์˜๊ฐ€ ๋˜์–ด์žˆ
์ง€ ์•Š์œผ๋ฉด ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†์–ด
ํ• ๋‹นํ•˜๊ธฐ ํž˜๋“ค๋‹ค.
Person.h
๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” pImpl๋ฐ–์— ์—†๋‹ค
๋ชจ๋“  ๊ตฌํ˜„์€ PersonImpl๊ฐ์ฒด์—์„œ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋‹ค
Person๊ฐ™์€ ํด๋ž˜์Šค๋ฅผ ํ•ธ๋“ค ํด๋ž˜์Šค๋ผ๊ณ  ํ•œ๋‹ค
์ •๋ฆฌ
โ€ข ํฌ์ธํ„ฐ๋กœ ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž
โ€ข ํด๋ž˜์Šค ์ •์˜ ๋Œ€์‹  ์„ ์–ธ์— ์ตœ๋Œ€ํ•œ ์˜์กดํ•˜๋„๋ก ํ•˜์ž
โ€ข ํด๋ž˜์Šค๋ฅผ ์ชผ๊ฐค ๊ฒฝ์šฐ(pimpl) ์„ ์–ธ๊ณผ ์ •์˜์— ๋Œ€ํ•ด ๊ฐ๊ฐ์˜ ํ—ค๋”ํŒŒ
์ผ์„ ์ œ๊ณตํ•˜์ž
โ€ข ํ…œํ”Œ๋ฆฟ ์„ ์–ธ๊ณผ ์ •์˜๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ export๋ผ
๋Š” ํ‚ค์›Œ๋“œ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.(์•„์ง์€ ์“ฐ๊ธฐ์—๋Š” ์‹œ๊ธฐ์ƒ์กฐ)
์•„์ง ๋๋‚˜์ง€ ์•Š์•˜๋‹ค
์•„๊นŒ์˜ person ํด๋ž˜์Šค
ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜
Person ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ํ•จ์ˆ˜
์‚ฌ์šฉ๋ฐฉ๋ฒ•
Person์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š” ํ•จ์ˆ˜
๋งˆ์ง€๋ง‰์œผ๋กœ ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜ ๊ตฌํ˜„
์ด๊ฒƒ์ด ํด๋ž˜์Šค์˜ ํด๋ผ์Šค
public์€ โ€œis-aโ€
A ํŽญ๊ท„ is a ๋ฒ„๋“œ
๊ทธ๋Ÿฐ๋ฐ ์ด์ƒํ•˜๋‹ค ํŽญ๊ท„์€ ๋‚  ์ˆ˜ ์—†๋‹ค.
๋ชจ๋“  ์ƒˆ๋Š” ๋‚  ์ˆ˜ ์žˆ๋‹ค.
ํ”Œ๋ผ์ด๋“œ ๋ฒ„๋“œ
ํ˜„์‹ค์— ๊ฐ€๊นŒ์šด ๊ฐ์ฒด ๋””์ž์ธ
์ด๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‚˜์š”?
์ด๊ฑด ํŽญ๊ท„์ด ๋ชป๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ํŽญ๊ท„์ด ๋‚ ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋Š” ๋œป์ด๋‹ค.
๋งŒ์•ฝ ํŽญ๊ท„์ด ๋‚˜๋Š” ๊ธฐ์ดํ•œ ํ˜„์ƒ์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ๋Š” ๋Ÿฐํƒ€์ž„ ์ค‘์—์„œ๋งŒ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹ค์Œ์€ ๋„ํ˜•์„ ๊ฐ€์ง€๊ณ  ๋†€์ž
์ดˆ๋“ฑํ•™๊ต ๋•Œ ๋ฐฐ์šด ๋‚ด์šฉ์ด๋‹ค.
Rectangleํด๋ž˜์Šค์™€ ๋„“์ด๋ฅผ ๋Š˜๋ฆฌ๋Š” ํ•จ์ˆ˜
์—ฌ๊ธฐ์„œ ๋„“์ด๋ฅผ ๋Š˜๋ฆฌ๋Š” ํ•จ์ˆ˜๋Š” ๊ฐ€๋กœ์™€
์„ธ๋กœ๊ธธ์ด๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
์Œโ€ฆ Rect์—์„œ ์ƒ์†๋ฐ›์€ makeBiggerํ•จ์ˆ˜๊ฐ€ ์ด์ƒํ•˜๋‹ค.
ํด๋ž˜์Šค๊ฐ„ ๋งบ์„ ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„๋Š” ์ด๋ฟ๋งŒ์ด ์•„๋‹ˆ๋‹ค.
์ซŒ ์žˆ์œผ๋ฉด ๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.
์ƒ์†๋œ ์ด๋ฆ„์„ ์ˆจ๊ธฐ๋Š” ์ผ์€ ํ”ผํ•˜์ž
์ปดํŒŒ์ผ๋Ÿฌ : mf2๋ฐœ๊ฒฌ!!
์œ ํšจ๋ฒ”์œ„๋ถ€ํ„ฐ ํƒ์ƒ‰
๋‹ค์Œ ์œ ํšจ๋ฒ”์œ„ ํƒ์ƒ‰
์ปดํŒŒ์ผ๋Ÿฌ : ํ โ€ฆ ์ด๊ฑด ์–ด๋–จ๊นŒโ€ฆ.
Baseํด๋ž˜์Šค์— ์žˆ๋Š” ์ด๋ฆ„์€ ์ „๋ถ€ Derivedํด๋ž˜์Šค์— ์žˆ๋Š” ์ด๋ฆ„์— ์˜ํ•ด ๊ฐ€๋ ค์ง„๋‹ค.
์ด๋ฆ„๋งŒ ๋ณธ๋‹ค! ๋งค๊ฐœ๋ณ€์ˆ˜ ๋”ฐ์œˆ ์ณ๋‹ค๋ณด์ง€๋„ ์•Š๋Š”๋‹ค!
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ทธ์ € ์‹ค์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์žˆ๋‹ค.
์‹ค์ˆ˜๊ฐ€ ์•„๋‹˜์„ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ์ž.
๊ธฐ๋ณธ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง„ ์ „๋ถ€๋ฅผ ์ƒ์†ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒฝ์šฐ
Private์‚ฌ์šฉ์œผ๋กœ is-a๊ด€๊ณ„๊ฐ€ ๊นจ์ง„๋‹ค.
๊ฒฐ๊ตญ์€ Derivedํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ
์ธํ„ฐํŽ˜์ด์Šค ์ƒ์†๊ณผ ๊ตฌํ˜„ ์ƒ์†
Shap๋ผ๋Š” ์ถ”์ƒ ํด๋ž˜์Šค
๊ทธ์ € ๊ป๋ฐ๊ธฐ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์–ด๋งˆ์–ด๋งˆํ•œ ํž˜์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.
์šฐ์„  ์ˆœ์ˆ˜๊ฐ€์ƒํ•จ์ˆ˜๋ถ€ํ„ฐ
๋งˆ์น˜ โ€œ๊ธฐ๋Šฅ์€ ์ด๋ ‡๊ฒŒ ์ด๋ ‡๊ฒŒ ํ•ด! ๊ตฌํ˜„์€ ์•Œ์•„์„œ ํ•ด!โ€ ๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ๋‹ค.
์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์ง€๋งŒ ์ด๋ ‡๊ฒŒ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹ค์Œ์€ ๋‹จ์ˆœ ๊ฐ€์ƒํ•จ์ˆ˜
โ€œ๊ตฌํ˜„์€ ํ•ด ๋“œ๋ฆด๊ป˜, ๋งˆ์Œ์— ์•ˆ ๋“ค๋ฉด ๊ณ ์ณ ์“ฐ์‹œ๋˜๊ฐ€ ์•„, ๋Œ€์‹  ์ด๊ฑฐ ์ง€์›ํ•˜๋Š” ํ•จ์ˆ˜๋Š” ๊ผญ ์žˆ์–ด์•ผ ํ•ดโ€
๋งค๋ฒˆ ์šฐ๋ ค๋จน๋Š” ์žฌ๋ฏธ
๊นœ๋นก ์žŠ๊ณ  flyํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์„ ๊ฒฝ์šฐ ์›์น˜๋„ ์•Š์€ flyํ•จ์ˆ˜๋ฅผ ์ƒ์†๋ฐ›์„ ์ˆ˜ ๋„ ์žˆ๋‹ค.
A, B์—๋Š” ๊ฐ™์€ fly๊ธฐ๋Šฅ์„ ๋„ฃ๊ณ  ์‹ถ๋‹ค.
ํ•˜์ง€๋งŒ C์—๋Š” ๋‹ค๋ฅธ fly๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
Fly๋Š” ์ˆœ์ˆ˜๊ฐ€์ƒํ•จ์ˆ˜๋กœ, defaultFly๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.
์•ˆ์ „ํ•˜๊ฒŒ C์˜ fly๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€œ์ฝ”๋“œ ๋„ˆ๋ฌด ๋”๋Ÿฌ์šด๋ฐ ๋‹ค๋ฅธ ๊ฑฐ ์—†์–ด์š”?โ€
๊ณ์€ ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋กœ ์†์€ ์•Œ์ฐจ๊ฒŒ
์ด๊ฒŒ ๊ฐ€๋Šฅํ–ˆ๋‹ค๋‹ˆโ€ฆ
๋งˆ์ง€๋ง‰์œผ๋กœ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜
๋ฌด์กฐ๊ฑด ์ด๊ฑฐ ์‚ฌ์šฉํ•ด! ํŒจ ๊ฑด๋“ค์ง€๋งˆ!
์ฃผ์˜ํ•  ์ 
โ€ข ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์ง€ ๋ง์ž
โ€ข ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ƒ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์ง€ ๋ง์ž
๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ๋‚จ๋ฐœํ•˜๋ฉด ์ธค๋ฐ๋ ˆ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค.
์šฐ์„  ๋น„์šฉ๋ฌธ์ œ๋„ ์žˆ๋‹ค. ๊ฐ€์ƒํ•จ์ˆ˜ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ ํ•„์š”๋„ ์—†๋Š”๊ฑธ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋‚˜?
๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ ๋Œ€์‹ ํ•  ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋‘์ž
์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ๊ณ„์‚ฐ์€ ์บ๋ฆญํ„ฐ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค.
๋„ˆ๋ฌด ๋‹น์—ฐํ•œ ์„ค๊ณ„๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ?
๋‹น์—ฐํ•œ ์„ค๊ณ„๋ฅผ ๋‘๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์—ผ๋‘์— ๋‘๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ์–ด๋ ค์šด ์ผ์ด๋‹ค.
๊ฐ€์ƒํ•จ์ˆ˜ ์€ํ๋ก 
๊ฐ€์ƒํ•จ์ˆ˜๋Š” private์œผ๋กœ ์„ ์–ธ
๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
๋น„ ๊ฐ€์ƒํ•จ์ˆ˜ ์ธํ„ฐํŽ˜์ด์Šค๋ผ ํ•œ๋‹ค.
ํ˜น์€ wrapper๋ผ๊ณ  ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ์—„๊ฒฉํ•˜๊ฒŒ private์œผ๋กœ ์„ ์–ธ๋  ํ•„์š”๋Š” ์—†๋‹ค. ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค์—์„œ
์ด ๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์„ ์—ผ๋‘์— ๋‘๊ณ  protected๋กœ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ƒ์„ฑ์ž์—์„œ ์ฒด๋ ฅ์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„๋“ค์ด๊ณ  ์žˆ๋‹ค.
์ด๋Ÿฐ ์„ค๊ณ„๋Š” ์ œ๋ฒ• ์žฌ๋ฏธ์žˆ๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.
tr1::function์œผ๋กœ ๊ตฌํ˜„ํ•œ ํŒจํ„ด
์ฒด๋ ฅ์น˜ ๊ณ„์‚ฐ์„ ๊ผญ ํ•จ์ˆ˜๊ฐ€ ํ•ด์•ผํ•˜๋‚˜?
๋ฐ˜ํ™˜ํ˜•๋„ int๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ์ž„์˜
์˜ ํƒ€์ž…์ด๋ฉด ์ƒ๊ด€์—†์ง€ ์•Š๋‚˜?
์ด ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•ด์„œ ๋ด…์‹œ๋‹ค.
Tr1::functionํƒ€์ž…
์ด๊ฑธ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋Š” ์•ž์œผ๋กœ ๋Œ€์ƒ ์‹œ๊ทธ๋‹ˆ์ฒ˜(<>์†์˜ ํƒ€
์ž…)์™€ ํ˜ธํ™˜๋˜๋Š” ํ•จ์ˆ˜ํ˜ธ์ถœ์„ฑ ๊ฐœ์ฒด๋ฅผ ์–ด๋–ค ๊ฒƒ๋„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๊ธฐ์„œ ํ˜ธํ™˜๋œ๋‹ค๋Š” ๋œป์€ โ€˜์•”์‹œ์  ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค๏ผ‡๋ผ๋Š” ๋œป์ด๋‹ค.
๋ง๋กœ๋Š” ์–ด๋ ค์šฐ๋‹ˆ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๋ด…์‹œ๋‹ค.
๊ณ ์ „์ ์ธ ์ „๋žต ํŒจํ„ด
์ต์ˆ™ํ•˜์ง€ ์•Š์œผ๋‹ˆ ์ฝ”๋“œ๋กœ ๋ณด์ž
HealthCalcFuncํด๋ž˜์Šค๋Š” ํŒŒ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
์— ์ฑ„๋ ฅ๊ณ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐœ์ „์‹œํ‚ค๊ธฐ์— ์šฉ์ดํ•˜๋‹ค.
๊ธฐ๋Šฅ์€ ์ด์ „ ํด๋ž˜์Šค๋“ค๊ณผ ๊ฐ™๋‹ค.
์ •๋ฆฌํ•ฉ์‹œ๋‹ค
์ƒ์†๋ฐ›์€ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜์˜ ์žฌ์ •์˜๋Š” ๊ธˆ๋ฌผ!
์ด๊ฑฐ ๋ญ.. ์„ค๋ช…์ด ํ•„์š”ํ•œ๊ฐ€?
์ƒ์†๋ฐ›์€ ํ•จ์ˆ˜๋“ค์„ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ๋‹ค.
ํ•˜์ง€๋งŒ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ƒ์†์˜ ์˜๋ฏธ์™€ ๋‹ค๋ฅผ ๋ฟ๋”๋Ÿฌ D๋ฅผ B์˜ ํฌ์ธํ„ฐ์— ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ
D์˜ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๋“ฑ ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„์ด ๋ณต์žกํ•ด์ง„๋‹ค.
์ƒ์†์˜ ์˜๋ฏธ โ€œIs-aโ€
์ด๋Ÿฐ ์„ฑ์งˆ์„ ์ •์  ๋ฐ”์ธ๋”ฉ์ด๋ผ ํ•œ๋‹ค.
๊ฐ€์ƒ ํ•จ์ˆ˜๋Š” ๋™์  ๋ฐ”์ธ๋”ฉ์œผ๋กœ ๋ฌถ์—ฌ์žˆ๋‹ค.
์ƒ์†๋ฐ›์€ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์ ˆ๋Œ€ ์žฌ์ •์˜ ํ•˜์ง€ ๋ง์ž
์ด์œ ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค
โ€ข ๊ฐ€์ƒ ํ•จ์ˆ˜๋Š” ๋™์  ๋ฐ”์ธ๋”ฉ์œผ๋กœ ๋ฌถ์ธ๋‹ค.
โ€ข ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ์ •์  ๋ฐ”์ธ๋”ฉ์œผ๋กœ ๋ฌถ์ธ๋‹ค.
์ด๊ฑฐ ๋ญ์•ผโ€ฆ. ๋ฌด์„œ์›Œโ€ฆ.
๊ฐ์ฒด์˜ ์ •์  ํƒ€์ž…
์ •์  ํƒ€์ž… Shape*ํ˜•์— ์˜ํ•ด ์ง„์งœ๋กœ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์ด ๋‹ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.
๊ฐ์ฒด์˜ ๋™์  ํƒ€์ž…
//๋™์  ํƒ€์ž…์€ Circle*
//๋™์  ํƒ€์ž…์€ Rectangle*
์ด ๊ฐ์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•  ๊ฒƒ์ด๋ƒ? ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ž…
๊ฐ€์ƒํ•จ์ˆ˜๋Š” ๋™์  ํƒ€์ž…์— ์˜ํ•ด ๋™์ž‘. ์ฆ‰ ๋™์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋œ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ์ด๋ ‡๊ฒŒ ๊ธฐ๋ณธ๊ฐ’๊นŒ์ง€ ์ ์–ด์ค˜์•ผ ํ•œ๋‹ค.
๊ท€์ฐฎ๋‹คโ€ฆ.
๋น„๊ฐ€์ƒ ํ•จ์ˆ˜์—์„œ ๊ธฐ๋ณธ ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๊ณ  ์žˆ๋‹ค.
์–ด์ฐจํ”ผ ๋น„๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋œ๋‹ค.
โ€œhas-aโ€ ๊ทธ๋ฆฌ๊ณ  โ€œis-implemented-in-term-ofโ€
๊ฐ์ฒด์˜ ํ•ฉ์„ฑ์„ ์ด์šฉํ•˜์ž
ํ•ฉ์„ฑ์ด๋ž€ ๋‹ค๋ฅธ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ”๋กœ ์ด๊ฑฐ๋‹ค.
์™œ ๋ณต์žกํ•˜๊ฒŒ ๋‘ ๊ฐ€์ง€ ์˜๋ฏธ์ธ๊ฐ€?
โ€ข ์‘์šฉ ์˜์—ญ
โ€ข ๊ตฌํ˜„ ์˜์—ญ
์บ๋ฆญํ„ฐ, hp, ๋ชฌ์Šคํ„ฐ ๋“ฑ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด
๊ฐ์ฒด๋Š” ๋‘ ๊ฐ€์ง€ ์˜์—ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋ฒ„ํผ, ๋ฎคํ…์Šค, ํƒ์ƒ‰ํŠธ๋ฆฌ ๋“ฑ์˜ ์‹œ์Šคํ…œ๊ตฌํ˜„์„ ์œ„ํ•œ ์ธ๊ณต๋ฌผ
์‘์šฉ โ€“ has-a
๊ตฌํ˜„ โ€“ Is implemented in terms of
๋Œ์•„๊ฐ€์„œ ๊ฐ์ฒด์˜ ํ•ฉ์„ฑ์„ ์ด์šฉํ•˜์ž
Set์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ list์—์„œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค.
ํ•˜์ง€๋งŒ list๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๊ณ  Set์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋‹ˆ is-a๊ด€๊ณ„๋Š” ๋ถ€์ ์ ˆํ•˜๋‹ค.
์ด๋Ÿด ๋•Œ๋Š” list๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„๋˜๋Š” (Is implemented in terms of) ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•˜์ž
private์ƒ์†์€ ์‹ฌ์‚ฌ์ˆ™๊ณ 
Public์„ ์‚ด์ง ๋ฐ”๊ฟ”๋ณด๋ฉด..
์ „ํ˜€ is-a๊ฐ€ ์•„๋‹ˆ๋‹ค
Private์ƒ์†
โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ€ข ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ ๋ฌผ๋ ค๋ฐ›์€ ๋ฉค๋ฒ„๋Š” ๋ชจ์กฐ๋ฆฌ private๋ฉค๋ฒ„๊ฐ€ ๋œ๋‹ค.
โ€ข Is-implemented-in-terms-of๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.
โ€ข ์ฆ‰ ํŒŒ์ƒ ํด๋ž˜์Šค์™€ ๊ธฐ๋ณธ ํด๋ž˜์Šค๊ฐ„์˜ ์–ด๋– ํ•œ ์˜๋ฏธ ์—†๋Š” ๊ทธ๋ƒฅ ๊ตฌํ˜„
๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค.
์ž ๊น ํ•ฉ์„ฑํ•˜๊ณ  ์ฐจ์ด๊ฐ€ ๋ญ์•ผ?
โ€ข ๊ทธ๋ƒฅ ํ•ฉ์„ฑ์„ ์จ๋ผ
โ€ข Private์„ ๊ผญ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๋งŒ ์จ๋ผ
โ€ข ๋น„๊ณต๊ฐœ ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜
โ€ข ๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ ํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜
โ€ข ์–ด์ฉ” ์ˆ˜ ์—†์ด private์„ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ•˜๊ฑฐ๋‚˜
์˜ˆ๋ฅผ ๋“ค์ž๋ฉด
Timer๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋‹ค์‹œ ์žฌํ™œ์šฉํ•˜๊ณ  ์‹ถ๋‹ค.
๊ฐ€์ƒํ•จ์ˆ˜ onTick์„ ๋‹ค์‹œ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด private์„ ์‚ฌ์šฉ
ํ•˜์ง€๋งŒ..
Private๊ผญ ์•ˆ ์‚ฌ์šฉํ•ด๋„ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.
์˜คํžˆ๋ ค widget์˜ ํŒŒ์ƒํด๋ž˜์Šค์—์„œ onTick์˜ ์žฌ์ •์˜๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ๊ณ 
์ปดํŒŒ์ผ ์˜์กด์„ฑ์„ ์ตœ์†Œํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ด์ ์ด ์žˆ๋‹ค.
์–ด์ฉ” ์ˆ˜ ์—†์ด private์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
์žฌ๋ฏธ์žˆ๊ฒŒ๋„ c++์—์„œ๋Š”
๋…๋ฆฝ์ ์ธ ๊ฐ์ฒด์— ๊ด€ํ•ด์„œ๋Š” ํฌ๊ธฐ๊ฐ€ ๋ฌด์กฐ๊ฑด 0์ดˆ๊ณผ์ด๋‹ค.
ํ•˜์ง€๋งŒโ€ฆ
์ด๋ ‡๊ฒŒ ๊ณต๊ฐ„์ ˆ์•ฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ๊ณต๋ฐฑ ๊ธฐ๋ณธ ํด๋ž˜์Šค ์ตœ์ ํ™”(EBO)๋ผ๊ณ  ํ•œ๋‹ค.
๋‹ค์ค‘์ƒ์†๋„ ์‹ฌ์‚ฌ์ˆ™๊ณ 
๋‹ค์ค‘์ƒ์† ์ข‹๋‹ค? ๋‚˜์˜๋‹ค?
์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ฟ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ชจํ˜ธ์„ฑ์„ ๊ฐ€์ง„๋‹ค.
์ด๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์ค‘๋ณตํ•จ์ˆ˜ํ˜ธ์ถœ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜๋ฅผ ๋งํ•ด์•ผ ํ•œ๋‹ค.
์ฃฝ์Œ์˜ ๋งˆ๋ฆ„๋ชจ
File์— ๋ฉค๋ฒ„๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜ ์žˆ๋‹ค๋ฉด IOFile์—๋Š” ๊ทธ ๋ณ€์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ์„๊นŒ?
๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์ค‘๋ณต ์ƒ์„ฑํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
๊ฐ€์ƒ ์ƒ์†์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
์žฌ๋ฏธ์žˆ๋Š” ์ ์€ ํ‘œ์ค€ C++๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ด ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
basic_iostream์ด ์ด ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
์ƒ๊ฐํ•ด๋ณด๋ฉด ๋ชจ๋“  public์ƒ์†์ด ์ „๋ถ€ virtual์ด ๋ถ™์–ด์•ผ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ virtual์„ ๋ถ™์˜€์„ ๋•Œ ๋“œ๋Š” ๋น„์šฉ์„ ์ƒ๊ฐํ•˜์ž
๊ฐ€์ƒ์ƒ์†์˜ ๋น„์šฉ๋“ค
โ€ข ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ˆจ๊ฒจ์ง„ ๋น„์šฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์šฐ๋ฆฌ์˜ ๋‡Œ ์ž์›๋„ ๋นผ์•—์•„
๊ฐ„๋‹ค.
โ€ข ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ ํŒŒ์ƒ๋œ ๊ฒฝ์šฐ
โ€ข ๊ธฐ์กด์˜ ํด๋ž˜์Šค ๊ณ„ํ†ต์— ์ƒˆ๋กœ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ
โ€ข ์ „๋ถ€ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค
โ€ข ๊ทธ๋ƒฅ ์“ฐ์ง€ ๋ง์ž
โ€ข ๊ผญ ์จ์•ผ ํ•œ๋‹ค๋ฉด, ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ๋‚ด์šฉ์„ ์ตœ๋Œ€ํ•œ ์ค„์ด์ž.
๊ทธ๋ž˜๋„ ์“ธ๋งŒํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค
ํ•œ์ชฝ์€ public, ๋‹ค๋ฅธ ํ•œ์ชฝ์€ private์œผ๋กœ ์ƒ์†๋ฐ›๊ณ  ์žˆ๋‹ค.
์ด ํ˜•ํƒœ๋ฅผ ๊ธฐ์–ตํ•ด๋‘์ž.
Effective c++ 3
Effective c++ 3
Effective c++ 3

More Related Content

What's hot

More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅMore effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅDong Chan Shin
ย 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinDong Chan Shin
ย 
์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019
์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019
์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019devCAT Studio, NEXON
ย 
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌEffective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌDong Chan Shin
ย 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ ๋ช…์ค€ ๊น€
ย 
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++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinDong Chan Shin
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝNam Hyeonuk
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ต์„ฑ ์กฐ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””quxn6
ย 
Chapter5 ~ 6
Chapter5 ~ 6Chapter5 ~ 6
Chapter5 ~ 6Injae Lee
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””quxn6
ย 
1 2 1
1 2 11 2 1
1 2 1nexthw
ย 

What's hot (20)

More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅMore effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
ย 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshin
ย 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
ย 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
ย 
์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019
์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019
์ด๋ฌด๋ฆผ, Enum์˜ Boxing์„ ์–ด์ฐŒํ• ๊ผฌ? ํŽธ๋ฆฌํ•˜๊ณ  ์„ฑ๋Šฅ์ข‹๊ฒŒ Enum ์‚ฌ์šฉํ•˜๊ธฐ, NDC2019
ย 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
ย 
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌEffective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
ย 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ํŒŒ์ด์ฌ ๋‘˜์งธ๋‚ 
ย 
effective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌeffective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
ย 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
ย 
Effective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshin
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
ย 
Chapter5 ~ 6
Chapter5 ~ 6Chapter5 ~ 6
Chapter5 ~ 6
ย 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
ย 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
ย 
1 2 1
1 2 11 2 1
1 2 1
ย 

Similar to Effective c++ 3

Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinDong Chan Shin
ย 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4Dong Chan Shin
ย 
๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13Shin heemin
ย 
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€HoJun Sung
ย 
Use JavaScript more strictly (feat. TypeScript, flow)
Use JavaScript more strictly (feat. TypeScript, flow)Use JavaScript more strictly (feat. TypeScript, flow)
Use JavaScript more strictly (feat. TypeScript, flow)Mark Lee
ย 
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)Hyun Sung Yoon
ย 
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)Hyun Sung Yoon
ย 
Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Shin heemin
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Injae Lee
ย 
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์ŠคTcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค์žฌ์ • ์ด
ย 
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””quxn6
ย 
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตMore effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตDong Chan Shin
ย 
M5 6 1
M5 6 1M5 6 1
M5 6 1nexthw
ย 
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6quxn6
ย 
7 8 1
7 8 17 8 1
7 8 1nexthw
ย 
The art of readable code ch4 ch8
The art of readable code ch4   ch8The art of readable code ch4   ch8
The art of readable code ch4 ch8Ki Sung Bae
ย 
๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„
๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„
๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„Eb Styles
ย 

Similar to Effective c++ 3 (20)

Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshin
ย 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4
ย 
๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13
ย 
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
ย 
Use JavaScript more strictly (feat. TypeScript, flow)
Use JavaScript more strictly (feat. TypeScript, flow)Use JavaScript more strictly (feat. TypeScript, flow)
Use JavaScript more strictly (feat. TypeScript, flow)
ย 
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
ย 
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
Chapter8 ์ƒ์†๊ณผ๋‹คํ˜•์„ฑ(์œคํ˜„์„ฑ)
ย 
Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2
ย 
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์ŠคTcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
ย 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
ย 
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
ย 
EC 789
EC 789EC 789
EC 789
ย 
MEC++ 3,4
MEC++ 3,4MEC++ 3,4
MEC++ 3,4
ย 
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตMore effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
ย 
M5 6 1
M5 6 1M5 6 1
M5 6 1
ย 
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6
ย 
7 8 1
7 8 17 8 1
7 8 1
ย 
The art of readable code ch4 ch8
The art of readable code ch4   ch8The art of readable code ch4   ch8
The art of readable code ch4 ch8
ย 
๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„
๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„
๋ณด๋‹ค ๋‚˜์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„
ย 

Effective c++ 3