SlideShare a Scribd company logo
ํ•ญ๋ชฉ 30 : ํ”„๋ก์‹œ ํด๋ž˜์Šค
ํ”„๋ก์‹œ ํด๋ž˜์Šค๋Š” ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•จ์— ์žˆ์–ด์„œ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค
์‹ค์ œ ํ™œ์šฉ์€ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ [ ][ ] ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ฑฐ๋‚˜
[ ] ์—ฐ์‚ฐ์ž์˜ ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์šฉ๋„๋ฅผ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜
์•”์‹œ์  ํ˜•๋ณ€ํ™˜์„ ๋ง‰๋Š”๋ฐ ์ด์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์—๋Š” ๋น„์šฉ์ด ์žˆ๋“ฏ์ด ํ”„๋ก์‹œ ๊ฐ์ฒด๋„ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์ด๋ฏ€๋กœ ์ƒ์„ฑ ์†Œ๋ฉธ์˜ ๋น„์šฉ์ด ํ•„์š”ํ•˜๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ฃผ์–ด์ง„ ์ž‘์—…์„ ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ž‘์—…๊ณผ์ •์ด ๋” ๋ณต์žกํ•ด์ง€๊ฒŒ ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
ํ•ญ๋ชฉ 31 : ํ•จ์ˆ˜๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฐ์ฒด(ํƒ€์ž…)์— ๋Œ€ํ•ด ๊ฐ€์ƒ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋‹ด๋‹นํ•˜๋Š” map์„ ๋งŒ๋“ ๋‹ค.
์ด ๋งต์˜ ํ‚ค๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…์ด๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‘˜์ด๋ฉด ๋‘ ๊ฐ์ฒด์˜ ํƒ€์ž…์˜ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค.
๋งต์˜ ๊ฐ’์€ ์ฃผ์–ด์ง„ ํ‚ค์— ์ ํ•ฉํ•œ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์ด๋‹ค.
์‹ค์ œ ์‚ฌ์šฉํ•  ๋•Œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ์šฐ์„  ์ธ์ž๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ํ™•์ธํ•œ๋‹ค.
๊ฐ์ฒด ํƒ€์ž…์˜ ํ™•์ธ์€ typeid().name์„ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋ฉฐ,
ํƒ€์ž…๋“ค์„ ํ™•์ธํ•œ ํ›„์— ์ด๋ฏธ ์ƒ์„ฑํ•œ ํ•จ์ˆ˜ ํ…Œ์ด๋ธ” map์—์„œ ์ ํ•ฉํ•œ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค.
์ด๋ ‡๊ฒŒ ์–ป๋Š” ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์— ์•ž์„œ ๊ฐ์ฒด ํƒ€์ž…์„ ํ™•์ธํ–ˆ๋˜ ์‹ค์ œ ๊ฐ์ฒด๋“ค์„ ์ธ์ž๋กœ ๋„ฃ์–ด์„œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.
ํ•ญ๋ชฉ 31 : ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜์ž
์ฝ”๋“œ์— ์žˆ์–ด์„œ ์ œ์•ฝ์ด ์žˆ๋‹ค๋ฉด ์ฃผ์„์ด๋‚˜ ๋ฌธ์„œ์™€ ๊ฐ™์€ ๊ฐ„์ ‘์ ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ์ฐจ์›์—์„œ ๊ฐ•์ œํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ๊ฒƒ
๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฏธ๋ฆฌ๋ถ€ํ„ฐ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค ํ•„์š”๋Š” ์—†๋‹ค. ํ•„์š”ํ•ด์ง€๋ฉด ๊ทธ๋•Œ ๊ตฌํ˜„ํ•  ๊ฒƒ
๋Œ€์ž…๊ณผ ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ์ •์˜
๋ณดํŽธ์ ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฐ๊ณผ์— ๋งž์ถฐ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ โ€“ int๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ํ•œ ๋ฐฉ๋ฒ•
๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ์‰ฝ๊ฒŒ, ํ‹€๋ฆฌ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ๊ฒƒ
์ด์‹์„ฑ๋„ ๊ณ ๋ ค ํ•  ๊ฒƒ
unnamed namespace๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ file-scope์˜ ์ •์  ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•จ์œผ๋กœ์จ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๋•Œ ์ˆ˜์ • ๋ฒ”์œ„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•  ๊ฒƒ
ํ•ญ๋ชฉ 32 : ์ƒ์†๊ด€๊ณ„ ๋ง๋‹จ์— ์žˆ์ง€ ์•Š์€ ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์ž
๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์ƒ์†์‹œ์ผœ์„œ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ๋ณด๋‹ค๋Š” ๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„์„ ์ถ”์ถœํ•ด์„œ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํด๋ž˜์Šค๋ฅผ ๊ฐ๊ฐ ์ƒ์†๋ฐ›๋Š” ๊ฒƒ์ด ์ข‹๋‹ค
์ˆœ์ˆ˜ ๊ฐ€์ƒ ํด๋ž˜์Šค๋Š” ๋ณดํ†ต ์†Œ๋ฉธ์ž๋ฅผ ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด์„œ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ, ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋กœ ๋งŒ๋“ค๋”๋ผ๋„ ๊ตฌํ˜„์€ ํ•„์š”ํ•˜๋‹ค.
ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๋‚ญ๋น„์ด๋‹ค. ๊ฒฐ๊ตญ ์ ๋‹นํ•œ ์„ ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ค‘์š”
ํ•ญ๋ชฉ 33 : ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ C++์™€ C๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ž
๋„ค์ž„ ๋งน๊ธ€๋ง
C++๋Š” ๊ฐ€์ƒํ•จ์ˆ˜๋ผ๋Š” ์กด์žฌ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด C์™€ ํฐ ์ฐจ์ด์ ์ด๋‹ค.
์—ฌ๊ธฐ์„œ ๋น„๋กฏ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ C++๋Š” ์ฝ”๋“œ์—์„œ ์ •ํ•œ ํ•จ์ˆ˜ ์ด๋ฆ„(symbol)์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐ”๊พผ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ฆ‰ C++์ฝ”๋“œ์—์„œ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์Œ์—๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.
์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ extern โ€œCโ€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฆ„์—†๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํ‚ค์›Œ๋“œ๋Š”
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋„ค์ž„ ๋งน๊ธ€๋ง์„ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•œ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ์— ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด C++ ์ปดํŒŒ์ผ๋Ÿฌ์—๋งŒ __cplusplus๊ฐ€ ์„ ์–ธ ๋˜์–ด ์žˆ๋Š” ์ ์„ ์ด์šฉํ•ด์„œ #ifdef๋กœ ๊ตฌํ˜„ํ•œ๋‹ค
์ •์  ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”
C++์€ ์ •์  ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”์™€ ํ•ด์ œ๋ฅผ ์œ„ํ•ด์„œ main()ํ•จ์ˆ˜์˜ ์•ž ๋’ค์— ํ•ด๋‹น ์ž‘์—…์„ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ผ์›Œ ๋„ฃ๋Š” ๊ฐœ๋…์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
๊ทธ๋Ÿฌ๋ฏ€๋กœ main() ํ•จ์ˆ˜๋ฅผ C++๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์œผ๋ฉฐ, ๋งŒ์•ฝ main()์ด C๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋Š” C++ main()์„ ๋‘์–ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น
๊ฐ™์€ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ธ new / delete ์™€ malloc / free ์ด์ง€๋งŒ ์—„์—ฐํžˆ ๋‹ค๋ฅด๋ฏ€๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์Œ์„ ๋งž์ถฐ์„œ ์‚ฌ์šฉํ•œ๋‹ค
์ž๋ฃŒ๊ตฌ์กฐ์˜ ํ˜ธํ™˜์„ฑ
C์™€ C++ ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋ฉด C์—์„œ ์ปดํŒŒ์ผ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด ํƒ€์ž…์„ ์ด์šฉํ•œ๋‹ค.
POD๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.
ํ•ญ๋ชฉ 35 : C++ ์–ธ์–ด์˜ ์ตœ์‹  ํ‘œ์ค€์•ˆ๊ณผ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์ต์ˆ™ํ•ด์ง€์ž
์ฑ…์˜ ์ถœํŒ ์‹œ๊ธฐ์ƒ ์ง€๊ธˆ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ์ด์•ผ๊ธฐ๊ฐ€ ๋งŽ์•„์„œ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

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
ย 
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐ
Jongwook Choi
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€quxn6
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
quxn6
ย 
Refelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
Refelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌRefelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
Refelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ssuser7c5a40
ย 
Flyweight
FlyweightFlyweight
์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž
์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž
์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž
. Ruvendix
ย 
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
. Ruvendix
ย 
์˜ˆ์™ธ ์ฒ˜๋ฆฌ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ
. Ruvendix
ย 
C++11
C++11C++11
Hacosa js study 2์ฃผ์ฐจ
Hacosa js study 2์ฃผ์ฐจHacosa js study 2์ฃผ์ฐจ
Hacosa js study 2์ฃผ์ฐจ
Seong Bong Ji
ย 
[Swift] Extensions
[Swift] Extensions[Swift] Extensions
[Swift] Extensions
Bill Kim
ย 
Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)
Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)
Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)
Circulus
ย 
ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹
ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹
ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹
. Ruvendix
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ต์„ฑ ์กฐ
ย 
5 6 1
5 6 15 6 1
5 6 1nexthw
ย 

What's hot (20)

More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
ย 
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅMore effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
ย 
C++11 1
C++11 1C++11 1
C++11 1
ย 
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ: C++11 ์ด์•ผ๊ธฐ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
ย 
Refelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
Refelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌRefelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
Refelction์˜ ๊ฐœ๋…๊ณผ RTTR ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ย 
Flyweight
FlyweightFlyweight
Flyweight
ย 
์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž
์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž
์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž
ย 
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
ย 
์˜ˆ์™ธ ์ฒ˜๋ฆฌ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ
ย 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4
ย 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
ย 
C++11
C++11C++11
C++11
ย 
Hacosa js study 2์ฃผ์ฐจ
Hacosa js study 2์ฃผ์ฐจHacosa js study 2์ฃผ์ฐจ
Hacosa js study 2์ฃผ์ฐจ
ย 
[Swift] Extensions
[Swift] Extensions[Swift] Extensions
[Swift] Extensions
ย 
Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)
Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)
Startup JavaScript 5 - ๊ฐ์ฒด(Date, RegExp, Object, Global)
ย 
ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹
ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹
ํด๋ž˜์Šค์˜ ์ถ”๊ฐ€ ์ง€์‹
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
ย 
5 6 1
5 6 15 6 1
5 6 1
ย 

Similar to Mec 56

2014-15 Intermediate C++ Study #6
2014-15 Intermediate C++ Study #62014-15 Intermediate C++ Study #6
2014-15 Intermediate C++ Study #6
Chris Ohk
ย 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
์„ฑ์—ฐ ๊น€
ย 
2014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #72014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #7
Chris Ohk
ย 
[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ
[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ
[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ
jusingame
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€
quxn6
ย 
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌModern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌํฅ๋ฐฐ ์ตœ
ย 
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
TonyCms
ย 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshin
Dong Chan Shin
ย 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
ํฅ๋ฐฐ ์ตœ
ย 
More Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจMore Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจInjae Lee
ย 
C++ api design ํ’ˆ์งˆ
C++ api design ํ’ˆ์งˆC++ api design ํ’ˆ์งˆ
C++ api design ํ’ˆ์งˆHyeonSeok Choi
ย 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
Ryan Park
ย 
Design patterns
Design patternsDesign patterns
Design patterns
Joshua Yoon
ย 
Chapter7~9 ppt
Chapter7~9 pptChapter7~9 ppt
Chapter7~9 ppt
Injae Lee
ย 
3 Professional MFC
3 Professional MFC3 Professional MFC
3 Professional MFCguest47195786
ย 
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
Yeonah Ki
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝ
Nam Hyeonuk
ย 

Similar to Mec 56 (20)

2014-15 Intermediate C++ Study #6
2014-15 Intermediate C++ Study #62014-15 Intermediate C++ Study #6
2014-15 Intermediate C++ Study #6
ย 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
ย 
2014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #72014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #7
ย 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
ย 
[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ
[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ
[C์–ธ์–ด]ํ•จ์ˆ˜์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ์˜ค๋ฒ„๋ผ์ด๋”ฉ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ 789 ๊ณต๋ถ€
ย 
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌModern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
ย 
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
ย 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshin
ย 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
ย 
More Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจMore Effective C++ 4์ฃผ์ฐจ
More Effective C++ 4์ฃผ์ฐจ
ย 
C++ api design ํ’ˆ์งˆ
C++ api design ํ’ˆ์งˆC++ api design ํ’ˆ์งˆ
C++ api design ํ’ˆ์งˆ
ย 
Effective c++(chapter 5,6)
Effective c++(chapter 5,6)Effective c++(chapter 5,6)
Effective c++(chapter 5,6)
ย 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
ย 
Design patterns
Design patternsDesign patterns
Design patterns
ย 
Chapter7~9 ppt
Chapter7~9 pptChapter7~9 ppt
Chapter7~9 ppt
ย 
3 Professional MFC
3 Professional MFC3 Professional MFC
3 Professional MFC
ย 
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
ย 
MEC++ 5
MEC++ 5MEC++ 5
MEC++ 5
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝ
ย 

More from Gyeongwook Choi

JSON with C++ & C#
JSON with C++ & C#JSON with C++ & C#
JSON with C++ & C#Gyeongwook Choi
ย 
approximation algorithm
approximation algorithmapproximation algorithm
approximation algorithm
Gyeongwook Choi
ย 
introduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingintroduction to dynamic programming and linear programming
introduction to dynamic programming and linear programming
Gyeongwook Choi
ย 
Postmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จ
Postmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จPostmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จ
Postmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จGyeongwook Choi
ย 

More from Gyeongwook Choi (7)

MEC++ 3,4
MEC++ 3,4MEC++ 3,4
MEC++ 3,4
ย 
MEC++ 1, 2
MEC++ 1, 2MEC++ 1, 2
MEC++ 1, 2
ย 
EC 789
EC 789EC 789
EC 789
ย 
JSON with C++ & C#
JSON with C++ & C#JSON with C++ & C#
JSON with C++ & C#
ย 
approximation algorithm
approximation algorithmapproximation algorithm
approximation algorithm
ย 
introduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingintroduction to dynamic programming and linear programming
introduction to dynamic programming and linear programming
ย 
Postmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จ
Postmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จPostmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จ
Postmortem d ao_c_แ„Žแ…ฌแ„€แ…งแ†ผแ„‹แ…ฎแ†จ
ย 

Mec 56

  • 1. ํ•ญ๋ชฉ 30 : ํ”„๋ก์‹œ ํด๋ž˜์Šค
  • 2. ํ”„๋ก์‹œ ํด๋ž˜์Šค๋Š” ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•จ์— ์žˆ์–ด์„œ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค ์‹ค์ œ ํ™œ์šฉ์€ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ [ ][ ] ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ฑฐ๋‚˜ [ ] ์—ฐ์‚ฐ์ž์˜ ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์šฉ๋„๋ฅผ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜์„ ๋ง‰๋Š”๋ฐ ์ด์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์—๋Š” ๋น„์šฉ์ด ์žˆ๋“ฏ์ด ํ”„๋ก์‹œ ๊ฐ์ฒด๋„ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์ด๋ฏ€๋กœ ์ƒ์„ฑ ์†Œ๋ฉธ์˜ ๋น„์šฉ์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฃผ์–ด์ง„ ์ž‘์—…์„ ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ž‘์—…๊ณผ์ •์ด ๋” ๋ณต์žกํ•ด์ง€๊ฒŒ ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
  • 3. ํ•ญ๋ชฉ 31 : ํ•จ์ˆ˜๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฐ์ฒด(ํƒ€์ž…)์— ๋Œ€ํ•ด ๊ฐ€์ƒ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
  • 4. ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋‹ด๋‹นํ•˜๋Š” map์„ ๋งŒ๋“ ๋‹ค. ์ด ๋งต์˜ ํ‚ค๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…์ด๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‘˜์ด๋ฉด ๋‘ ๊ฐ์ฒด์˜ ํƒ€์ž…์˜ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งต์˜ ๊ฐ’์€ ์ฃผ์–ด์ง„ ํ‚ค์— ์ ํ•ฉํ•œ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์ด๋‹ค. ์‹ค์ œ ์‚ฌ์šฉํ•  ๋•Œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ์šฐ์„  ์ธ์ž๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ํ™•์ธํ•œ๋‹ค. ๊ฐ์ฒด ํƒ€์ž…์˜ ํ™•์ธ์€ typeid().name์„ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ํƒ€์ž…๋“ค์„ ํ™•์ธํ•œ ํ›„์— ์ด๋ฏธ ์ƒ์„ฑํ•œ ํ•จ์ˆ˜ ํ…Œ์ด๋ธ” map์—์„œ ์ ํ•ฉํ•œ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ์–ป๋Š” ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์— ์•ž์„œ ๊ฐ์ฒด ํƒ€์ž…์„ ํ™•์ธํ–ˆ๋˜ ์‹ค์ œ ๊ฐ์ฒด๋“ค์„ ์ธ์ž๋กœ ๋„ฃ์–ด์„œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.
  • 5. ํ•ญ๋ชฉ 31 : ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜์ž
  • 6. ์ฝ”๋“œ์— ์žˆ์–ด์„œ ์ œ์•ฝ์ด ์žˆ๋‹ค๋ฉด ์ฃผ์„์ด๋‚˜ ๋ฌธ์„œ์™€ ๊ฐ™์€ ๊ฐ„์ ‘์ ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ์ฐจ์›์—์„œ ๊ฐ•์ œํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ๊ฒƒ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฏธ๋ฆฌ๋ถ€ํ„ฐ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค ํ•„์š”๋Š” ์—†๋‹ค. ํ•„์š”ํ•ด์ง€๋ฉด ๊ทธ๋•Œ ๊ตฌํ˜„ํ•  ๊ฒƒ ๋Œ€์ž…๊ณผ ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ์ •์˜ ๋ณดํŽธ์ ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฐ๊ณผ์— ๋งž์ถฐ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ โ€“ int๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ํ•œ ๋ฐฉ๋ฒ• ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ์‰ฝ๊ฒŒ, ํ‹€๋ฆฌ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ๊ฒƒ ์ด์‹์„ฑ๋„ ๊ณ ๋ ค ํ•  ๊ฒƒ unnamed namespace๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ file-scope์˜ ์ •์  ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•จ์œผ๋กœ์จ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๋•Œ ์ˆ˜์ • ๋ฒ”์œ„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•  ๊ฒƒ
  • 7. ํ•ญ๋ชฉ 32 : ์ƒ์†๊ด€๊ณ„ ๋ง๋‹จ์— ์žˆ์ง€ ์•Š์€ ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์ž
  • 8. ๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์ƒ์†์‹œ์ผœ์„œ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ๋ณด๋‹ค๋Š” ๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„์„ ์ถ”์ถœํ•ด์„œ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํด๋ž˜์Šค๋ฅผ ๊ฐ๊ฐ ์ƒ์†๋ฐ›๋Š” ๊ฒƒ์ด ์ข‹๋‹ค ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํด๋ž˜์Šค๋Š” ๋ณดํ†ต ์†Œ๋ฉธ์ž๋ฅผ ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด์„œ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ, ์ˆœ์ˆ˜ ๊ฐ€์ƒํ•จ์ˆ˜๋กœ ๋งŒ๋“ค๋”๋ผ๋„ ๊ตฌํ˜„์€ ํ•„์š”ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํด๋ž˜์Šค๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๋‚ญ๋น„์ด๋‹ค. ๊ฒฐ๊ตญ ์ ๋‹นํ•œ ์„ ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ค‘์š”
  • 9. ํ•ญ๋ชฉ 33 : ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ C++์™€ C๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ž
  • 10. ๋„ค์ž„ ๋งน๊ธ€๋ง C++๋Š” ๊ฐ€์ƒํ•จ์ˆ˜๋ผ๋Š” ์กด์žฌ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด C์™€ ํฐ ์ฐจ์ด์ ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋น„๋กฏ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ C++๋Š” ์ฝ”๋“œ์—์„œ ์ •ํ•œ ํ•จ์ˆ˜ ์ด๋ฆ„(symbol)์„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐ”๊พผ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ C++์ฝ”๋“œ์—์„œ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์Œ์—๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ extern โ€œCโ€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฆ„์—†๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํ‚ค์›Œ๋“œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋„ค์ž„ ๋งน๊ธ€๋ง์„ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•œ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์— ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด C++ ์ปดํŒŒ์ผ๋Ÿฌ์—๋งŒ __cplusplus๊ฐ€ ์„ ์–ธ ๋˜์–ด ์žˆ๋Š” ์ ์„ ์ด์šฉํ•ด์„œ #ifdef๋กœ ๊ตฌํ˜„ํ•œ๋‹ค ์ •์  ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™” C++์€ ์ •์  ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”์™€ ํ•ด์ œ๋ฅผ ์œ„ํ•ด์„œ main()ํ•จ์ˆ˜์˜ ์•ž ๋’ค์— ํ•ด๋‹น ์ž‘์—…์„ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ผ์›Œ ๋„ฃ๋Š” ๊ฐœ๋…์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ main() ํ•จ์ˆ˜๋ฅผ C++๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์œผ๋ฉฐ, ๋งŒ์•ฝ main()์ด C๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋Š” C++ main()์„ ๋‘์–ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ฐ™์€ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ธ new / delete ์™€ malloc / free ์ด์ง€๋งŒ ์—„์—ฐํžˆ ๋‹ค๋ฅด๋ฏ€๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์Œ์„ ๋งž์ถฐ์„œ ์‚ฌ์šฉํ•œ๋‹ค ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํ˜ธํ™˜์„ฑ C์™€ C++ ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋ฉด C์—์„œ ์ปดํŒŒ์ผ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด ํƒ€์ž…์„ ์ด์šฉํ•œ๋‹ค. POD๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ€์ƒํ•จ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.
  • 11. ํ•ญ๋ชฉ 35 : C++ ์–ธ์–ด์˜ ์ตœ์‹  ํ‘œ์ค€์•ˆ๊ณผ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์ต์ˆ™ํ•ด์ง€์ž
  • 12. ์ฑ…์˜ ์ถœํŒ ์‹œ๊ธฐ์ƒ ์ง€๊ธˆ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ์ด์•ผ๊ธฐ๊ฐ€ ๋งŽ์•„์„œ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.