SlideShare a Scribd company logo
1 of 31
Download to read offline
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ ์”จ์ ์ 
-๊ธฐ๋ณธ ๊ฐœ๋…๋“ค	

-์—ฐ์‚ฐ์ž
ํฌ์ธํ„ฐ(pointer)์™€ ์ฐธ์กฐ์ž(reference)๋ฅผ ๊ตฌ๋ถ„ํ•˜์ž
๊ฐ„๋‹จ ๊ตฌ๋ถ„	

!
ํฌ์ธํ„ฐ * ->	

์ฐธ์กฐ์ž .
์ฐธ์กฐ์ž์—๊ฒŒ๋Š” ๋„ ์ฐธ์กฐ์ž(null reference)๊ฐ€ ์—†๋‹ค.	

->๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.	

!
๋งŒ์•ฝ ์—†์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด NULL์„ ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์“ฐ์ž.	

!
Null์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์กฐ์ฐจ ๋ถ€์ •ํ• ๋ ค๋ฉด ์ฐธ์กฐ์ž ์‚ฌ์šฉ
์ฐธ์กฐ์ž๋Š” ๊ผญ ์ดˆ๊ธฐํ™” ํ•ด์ค˜์•ผํ•จ
๊ผญ ์ดˆ๊ธฐํ™” ๋˜์–ด์žˆ๋Š๋‹ˆ ํฌ์ธํ„ฐ์ฒ˜๋Ÿผ null๊ฒ€์‚ฌ๋ฅผ ์•ˆํ•ด์ค˜๋„ ๋จ
์ฐธ์กฐ์ง€๋ฅผ ์จ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š”	

!
์ฐธ์กฐํ•  ํฌ์ธํ„ฐ๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์กด์žฌํ•  ๊ฒƒ์ž„์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ์™€	

์ฐธ์กฐํ•˜๋Š” ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์—†์„๋•Œ	

!
์—ฐ์‚ฐ์ž ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
์บ์ŠคํŒ… ์•ˆ์“ฐ๋ฉด ์ข‹์ง€๋งŒ	

์–ด์ฉ”์ˆ˜ ์—†์„๋•Œ ์“ฐ๊ฒŒ ๋จ	

!
๊ทธ๋Ÿฐ๋ฐ C์Šคํƒ€์ผ ์บ์ŠคํŒ…์€ ํ•˜์ง€ ๋ง์ž.
C++์— ์ถ”๊ฐ€๋œ	

static cast, const cast, dynamic cast, reinterpret cast์„ ์“ฐ์ž.
C์Šคํƒ€์ผ	

(ํƒ€์ž…) ํ‘œํ˜„์‹	

!
C++์Šคํƒ€์ผ	

static cast<ํƒ€์ž…>(ํ‘œํ˜„์‹)
static_cast๋Š” ์ผ๋ฐ˜ ์บ์ŠคํŒ…๊ณผ ๊ฑฐ์˜ ๊ฐ™์Œ
const_cast๋Š” ์ƒ์ˆ˜์„ฑ(const)์ด๋‚˜ ํœ˜๋ฐœ์„ฑ(volatileness)์„	

์ œ๊ฑฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
dynamic_cast
!
์ƒ์† ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๊ฐ€๋กœ์ง€๋ฅด๊ฑฐ๋‚˜ ํ•˜ํ–ฅ์‹œํ‚จ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ	

์•ˆ์ „ํ•˜๊ฒŒ ์บ์ŠคํŒ…ํ•  ๋•Œ ์‚ฌ์šฉ	

!
-๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜	

์ฐธ์กฐ์ž์˜ ํƒ€์ž…์„ ํŒŒ์ƒ(derived) ํด๋ž˜์Šค,	

ํ˜•์ œ(sibling) ํด๋ž˜์Šค์˜ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜	

!
์บ์ŠคํŒ…์˜ ์‹คํŒจ์‹œ ๋„ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
reinterpret_cast
!
์ •๋ง ๊ฐ•์ œ๋กœ ๋ญ๋“  ์บ์ŠคํŒ… ํ•ด์คŒ	

!
์ •๋ง ์œ„ํ—˜ ๊ฐ€๋Šฅํ•˜๋ฉด ์“ฐ์ง€๋ง์ž.
๋ฐฐ์—ด๊ณผ ๋‹คํ˜•์„ฑ์€ ๊ฐ™์€ ์ˆ˜์ค€์œผ๋กœ ๋†“๊ณ  ๋ณผ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐ์„ ํ• ๋•Œ	

i*sizeof(๋ฐฐ์—ด ๋‚ด์˜ ์š”์†Œ ๊ฐ์ฒด ํ•˜๋‚˜)	

์ด๋Ÿฐ์‹์œผ๋กœ ํ•˜๋Š”๋ฐ	

!
๋‹คํ˜•์„ฑ์œผ๋กœ ์ธํ•ด ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ์‚ฌ์ด์ฆˆ๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹คโ€ฆ
์“ธ๋ฐ ์—†๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋Š” ๊ทธ๋ƒฅ ๋‘์ง€ ๋ง์ž
๊ธฐ๋ณธ ์ƒ์„ฑ์ž(default constructor)	

(์•„๋ฌด๋Ÿฐ ์ธ์ž๋„ ๋ฐ›์ง€ ์•Š๊ณ  ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ์ƒ์„ฑ์ž)	

->์ดˆ๊ธฐํ™” ํ•˜๋Š” ์—ญํ• 	

!
-> ์™„์ „ํžˆ ์ดˆ๊ธฐํ™” ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.	

!
์—†์• ๋ฉด?	

(๋ฐฐ์—ด)์„ ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ ํž˜๋“ค์–ด์ง	

ํ…œํ”Œ๋ฆฟ ์ปจํ…Œ์ด๋„ˆ ํด๋ž˜์Šค์—์„œ๋Š” ๋” ํž˜๋“ค์–ด์ง	

!
๊ทธ๋ƒฅ ๋†”๋‘๋ฉด?	

์ดˆ๊ธฐํ™” ๋˜์—ˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์•Œ์•„?	

๊ฒฐ๊ตญ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์—„์ฒญํ•ด์•ผํ•จ
์—ฐ์‚ฐ์ž(Operators)
์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•ด์„œ โ€˜์ž˜โ€™์“ฐ๋ฉด ์ •๋ง ๊ฐ•๋ ฅํ•œ ํž˜์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ	

๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž๋“ค๊ณผ์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ๋ฌด๋„ˆ์ง€๋ฉด์„œ	

ํ—ฌ์ด ํ„ฐ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
์‚ฌ์šฉ์ž ์ •์˜ ํƒ€์ž…๋ณ€ํ™˜ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์˜๋ฅผ ๋†“์ง€ ๋ง์ž
c++ char๋ฅผ int ํƒ€์ž…์œผ๋กœ ํ˜น์€ short๋ฅผ double ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ€๋•Œ	

๋ณ„ ๋ฌธ์ œ ์—†์—ˆ์ฃ ?	

-> ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์•„์„œ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ์Œ	

!
-๋‹จ์ผ ์ธ์ž ์ƒ์„ฑ์ž(single-argument constructor)	

->์ธ์ž๋ฅผ ํ•˜๋‚˜๋งŒ ๋ฐ›์•„ ํ˜ธ์ถœ๋˜๋Š” ์ƒ์„ฑ์ž	

!
-์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž (implicit type conversion operator)	

->ํƒ€์ž… ์•ž์— operator๋งŒ ๋ถ™์–ด ์žˆ๋Š” ํ•จ์ˆ˜
์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž	

!
์›ํ•˜์ง€ ์•Š์„๋•Œ์—๋„ ํ˜ธ์ถœ๋˜๊ณ  ๋ง์ˆ˜ ์žˆ๋‹ค.	

-> ์ฐพ๊ธฐ ํž˜๋“  ๋ฒ„๊ทธ๋ฅผ ์œ ๋ฐœ	

!
c_str๊ฐ™์ด ์ด๋ฆ„์„ ๋‹ฌ๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์“ฐ์ž.	

ํƒ€์ž… ๋ณ€ํ™˜ ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด ์˜๋„์น˜ ์•Š์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
๋‹จ์ผ ์ธ์ž ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•œ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์€ ๋ง‰๊ธฐ ๋” ํž˜ํ•ด๋“ค๋‹ค.	

->	

explicit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์•”์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.	

(๋ช…์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์€ ๊ณ„์† ํ—ˆ์šฉ)	

!
!
๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ํด๋ž˜์Šค : ํ”„๋ก์‹œ ํด๋ž˜์Šค(Proxy class)	

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์—†๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋™์ž‘๋ฐฉ์‹์„ ์กฐ์ •ํ•œ๋‹ค.
์ฆ๊ฐ€ ๋ฐ ๊ฐ์†Œ ์—ฐ์‚ฐ์ž์˜	

์ „์œ„(pre๏ฌx)/ํ›„์œ„(post๏ฌx) ํ˜•ํƒœ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌ๋ถ„ํ•˜์ž
์˜Ÿ๋‚ ์—๋Š” ++,โ€”์—ฐ์‚ฐ์ž๋ฅผ ์ „์œ„ ๋ฐฉ์‹๊ณผ ํ›„์œ„ ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„	

๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์„์ •๋„์˜€๋Š”๋ฐ	

!
์ด์ œ๋Š” ์ „์œ„/ ํ›„์œ„ ํ˜•ํƒœ๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.
์ „์œ„ ++
ํ›„์œ„ ++
์ „์œ„ โ€”
ํ›„์œ„ โ€”
์˜ค๋ฒ„๋กœ๋”ฉ๋œ ํ•จ์ˆ˜๋Š” ๊ทธ ํ•จ์ˆ˜์— ๋„˜๊ธฐ๋Š”	

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋˜์ง€๋งŒ	

!
์ฆ๊ฐ(++โ€”)์—ฐ์‚ฐ์ž๋Š” ์ธ์ž๋ฅผ ๋ฐ›์ง€ ์•Š์•„	

ํ›„์œ„๋Š” intํƒ€์ž…์˜ ์ธ์ž๋ฅผ ๋ฐ›๊ณ 	

ํ›„์œ„ํ˜•ํƒœ์˜ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ 0์„ ๋„˜๊ธฐ๋„๋ก ํ•จ
์ „์œ„ ํ˜•ํƒœ์˜ ์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž๋Š”	

โ€œ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” (increment and fetch)" ์—ฐ์‚ฐ์ž	

(++i)	

!
!
ํ›„์œ„ ํ˜•ํƒœ๋Š”	

โ€œ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ  ์ฆ๊ฐ€์‹œํ‚ค๋Š”(fetch and increment)" ์—ฐ์‚ฐ์ž	

(i++)	

!
ํ›„์œ„ ํ˜•ํƒœ์—๋Š”	

์ง€์—ญ ๋ณ€์ˆ˜๋กœ์„œ ์ƒ๊ฒผ๋‹ค๊ฐ€ ์—†์–ด์ง€๋Š” ์ž„์‹œ ๊ฐ์ฒด(oldValue)๊ฐ€ ์žˆ์Œ
์ „์œ„ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ์‹œ๋‹ค.
for(int i=0; i<10; ++i)
&&, || ํ˜น์€ ,์—ฐ์‚ฐ์ž๋Š” ์˜ค๋ฒ„๋กœ๋ง ๋Œ€์ƒ์ด ์ ˆ๋Œ€๋กœ ์•„๋‹ˆ๋‹ค
๋‹จ์ถ•ํ‰๊ฐ€(short-circuit)
์•ž์—์„œ ์ด๋ฏธ ์กฐ๊ฑด์„ ๋ฒ—์–ด๋‚˜๋ฉด ๋’ค๋Š” ๊ทธ๋ƒฅ ๋ฌด์‹œ	

(์‹œ๊ฐ„ ๋‹จ์ถ• ๊ฐ€๋Šฅ!)
ํ•˜์ง€๋งŒ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ•˜๋ฉด?	

!
-> ํ•จ์ˆ˜ ํ˜ธ์ถœ ์˜๋ฏธ๊ตฌ์กฐ๊ฐ€ ๋จ	

!
-> ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์šฐ์„ ์ ์œผ๋กœ ํ‰๊ณผ ๊ณผ์ •์„ ๊ฑฐ์นจ	

!
->๋‹จ์ถ•ํ‰๊ฐ€ ์•ˆ๋จ
,์—ฐ์‚ฐ์ž : ํ‘œํ˜„์‹์„ ๊พธ๋ฏธ๋Š”๋ฐ์— ์‚ฌ์šฉ๋จ
์ด๋Ÿฐ์‹์˜ ์ฝ”๋“œ์งœ๋Š”๊ฒƒ๋„ ์‚ฌ์‹ค ์ฒ˜์Œ๋ด„โ€ฆ
์˜ค๋ฒ„๋กœ๋”ฉ ๊ฐ€๋Šฅ ์—ฐ์‚ฐ์ž
์˜ค๋ฒ„๋กœ๋”ฉ ๋ถˆ๊ฐ€๋Šฅ ์—ฐ์‚ฐ์ž
์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์ฐธ๋œ ๋ชฉํ‘œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„	

์ฝ๊ณ , ์“ฐ๊ณ , ์ดํ•ดํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์ž๋Š” ๋ฐ์— ์žˆ์ง€	

๊ทธ๋ƒฅ ํฐ ์˜๋ฏธ ์—†์ด ์˜ค๋ฒ„๋กœ๋”ฉํ•˜์ง€ ๋ง์ž.
new์™€ delete์˜ ์˜๋ฏธ๋ฅผ ์ •ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ดํ•ดํ•˜์ž
โ€˜new ์—ฐ์‚ฐ์žโ€™์™€ โ€˜operator new'๋Š” ๋‹ค๋ฅธ๊ฒƒ	

!
operator new๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น	

new์—ฐ์‚ฐ์ž๋Š” operator new๋ฅผ ํ˜ธ์ถœํ•ด์„œ	

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ›๊ณ  ๊ฐ์ฒด ๊ตฌ์‹ค์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•จ
๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new(Placement new)
์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์€๋ฐ	

์ƒ์„ฑ์ž๋Š” ๋”ฑ ํ•œ๋ฒˆ๋งŒ ์ดˆ๊ธฐํ™” ๋จ	

์ผ๋‹จ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์žˆ๋Š”๋ฐ ๊ฑฐ๊ธฐ์— ์ดˆ๊ธฐํ™” ํ•ด์„œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด	

!
๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new(Placement new)์„ ์‚ฌ์šฉํ•จ
new ์—ฐ์‚ฐ์ž๊ฐ€ operator new๋ฅผ ํ˜ธ์ถœ
๊ธฐ๋ณธ์ ์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” size_t ์ธ์ž์™€ ํ•จ๊ป˜	

์›ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋ณด๊ธˆ์ž๋ฆฌ๋กœ ์‚ผ์„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” void*๊ฐ€ ์ „๋‹ฌ	

์ด operator new๊ฐ€ ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new
๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐพ์•„ ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
new ์—ฐ์‚ฐ์ž - ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ทธ ๊ฐ์ฒด์— ๋Œ€ํ•œ	

์ƒ์„ฑ์ž ํ˜ธ์ถœ์ด ๋™์‹œ์— ์ด๋ฃจ์–ด์ง	

!
operator new - ์ƒ์„ฑ์ž ํ˜ธ์ถœX ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๋งŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ	

(๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋งค์ปค๋‹ˆ์ฆ˜์—๋„ ์†์„ ๋Œ€๊ณ  ์‹ถ์œผ๋ฉด operator new๋ฅผ ์ž‘์„ฑ ํ›„ new ์—ฐ์‚ฐ์ž ํ˜ธ์ถœํ•˜๋ฉด ๋จ)
C++์—์„œ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์‚ญ์ œ(deletion)๋ž€ ์ด๋ฆ„์œผ๋กœ ๋ถ€๋ฅธ๋‹ค.	

delete ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ํ•˜๋Š”๊ฒƒ์„โ€ฆ	

!
new๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ operator delete๊ฐ€ ์žˆ์Œ
๊ฐ์ฒด ์‚ญ์ œ์™€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ(deletion & deallocation)
๋ฏธ์ดˆ๊ธฐํ™” ๋ฉ”๋ชจ๋ฆฌ๋งŒ์œผ๋กœ ์–ด๋–ค ์ผ์„ ํ•  ๋•Œ์—๋Š” new delete์—ฐ์‚ฐ์ž๋ฅผ	

๊ฑด๋„ˆ๋›ฐ๊ณ  ๊ทธ ๋Œ€์‹  operator new๋ฅผ	

๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜์‹œ์—๋Š” operator deleteํ˜ธ์ถœ
C++ ver malloc free
๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ	

delete ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ๋ฉด ์•ˆ๋˜๊ณ  ์ง์ ‘ ์†Œ๋ช…์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ณ 	

operator delete๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
๋ฐฐ์—ด(Arrays)
๋ฐฐ์—ด์€ operator new๊ฐ€ ์•„๋‹ˆ๋ผ operator new[]๋ฅผ ์‚ฌ์šฉ	

!
์—ญ์‹œ ์˜ค๋ฒ„๋กœ๋”ฉ ๊ฐ€๋Šฅ
operator new์™€ operator new[]์˜ ์ฐจ์ด์ 	

!
[] ๋ฒ„์ ผ์€ ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•ด ์ผ์ผ์ด ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.	

!
delete๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ operator delete[]์‚ฌ์šฉ

More Related Content

What's hot

์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€quxn6
ย 
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅMore effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅDong Chan Shin
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ต์„ฑ ์กฐ
ย 
M5 1 1
M5 1 1M5 1 1
M5 1 1nexthw
ย 
effective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌeffective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌInjae Lee
ย 
แ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5 function and object
แ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5   function and objectแ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5   function and object
แ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5 function and object๋ฏผํƒœ ๊น€
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5๋ฏผํƒœ ๊น€
ย 
1 2 1
1 2 11 2 1
1 2 1nexthw
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1๋ฏผํƒœ ๊น€
ย 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summarySehyeon Nam
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Injae Lee
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6๋ฏผํƒœ ๊น€
ย 
More effective c++ Chap1~2
More effective c++ Chap1~2More effective c++ Chap1~2
More effective c++ Chap1~2Injae Lee
ย 

What's hot (20)

์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
ย 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
ย 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
ย 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
ย 
Effective c++ 1,2
Effective c++ 1,2Effective c++ 1,2
Effective c++ 1,2
ย 
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅMore effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
More effective c++ แ„’แ…กแ†ผแ„†แ…ฉแ†จ30แ„‡แ…ฎแ„แ…ฅ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
ย 
M5 1 1
M5 1 1M5 1 1
M5 1 1
ย 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
ย 
effective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌeffective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌ
ย 
แ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5 function and object
แ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5   function and objectแ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5   function and object
แ„‹แ…ฌแ„€แ…จแ„‹แ…ฅ แ„‰แ…ณแ„แ…ฅแ„ƒแ…ต 3/5 function and object
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5
ย 
1 2 1
1 2 11 2 1
1 2 1
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #5.1
ย 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
ย 
MEC++ 1, 2
MEC++ 1, 2MEC++ 1, 2
MEC++ 1, 2
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2
ย 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
ย 
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
แ„‡แ…ตแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…กแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Javascript แ„‹แ…กแ†ฏแ„‹แ…กแ„€แ…กแ„€แ…ต #6
ย 
More effective c++ Chap1~2
More effective c++ Chap1~2More effective c++ Chap1~2
More effective c++ Chap1~2
ย 

Viewers also liked

M3 4 1
M3 4 1M3 4 1
M3 4 1nexthw
ย 
3 4 1
3 4 13 4 1
3 4 1nexthw
ย 
Random 120507151041-phpapp02
Random 120507151041-phpapp02Random 120507151041-phpapp02
Random 120507151041-phpapp02Yazeed Khalid
ย 
M5 6 1
M5 6 1M5 6 1
M5 6 1nexthw
ย 
Wael Resume
Wael ResumeWael Resume
Wael ResumeWael Hosny
ย 
A importรขncia da monitorizaรงรฃo minimamente invasiva
A importรขncia da monitorizaรงรฃo minimamente invasivaA importรขncia da monitorizaรงรฃo minimamente invasiva
A importรขncia da monitorizaรงรฃo minimamente invasivajoao rodrigo
ย 
7 8 1
7 8 17 8 1
7 8 1nexthw
ย 
Computer fundamentals-2
Computer fundamentals-2Computer fundamentals-2
Computer fundamentals-2Yazeed Khalid
ย 
31763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp01
31763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp0131763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp01
31763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp01Yazeed Khalid
ย 

Viewers also liked (13)

M3 4 1
M3 4 1M3 4 1
M3 4 1
ย 
3 4 1
3 4 13 4 1
3 4 1
ย 
Random 120507151041-phpapp02
Random 120507151041-phpapp02Random 120507151041-phpapp02
Random 120507151041-phpapp02
ย 
Anexo 1 ingles
Anexo 1 inglesAnexo 1 ingles
Anexo 1 ingles
ย 
Duck
DuckDuck
Duck
ย 
M5 6 1
M5 6 1M5 6 1
M5 6 1
ย 
Wael Resume
Wael ResumeWael Resume
Wael Resume
ย 
Softwareaccess
SoftwareaccessSoftwareaccess
Softwareaccess
ย 
A importรขncia da monitorizaรงรฃo minimamente invasiva
A importรขncia da monitorizaรงรฃo minimamente invasivaA importรขncia da monitorizaรงรฃo minimamente invasiva
A importรขncia da monitorizaรงรฃo minimamente invasiva
ย 
P1
P1P1
P1
ย 
7 8 1
7 8 17 8 1
7 8 1
ย 
Computer fundamentals-2
Computer fundamentals-2Computer fundamentals-2
Computer fundamentals-2
ย 
31763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp01
31763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp0131763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp01
31763381 23142747-computer-awareness-for-bank-exam-140227082505-phpapp01
ย 

Similar to M1 2 1

Effective cpp
Effective cppEffective cpp
Effective cppTonyCms
ย 
Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Shin heemin
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝNam Hyeonuk
ย 
More effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจMore effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจInjae Lee
ย 
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตMore effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตDong Chan Shin
ย 
Effective C++ Chapter 1 Summary
Effective C++ Chapter 1 SummaryEffective C++ Chapter 1 Summary
Effective C++ Chapter 1 SummarySeungYeonChoi10
ย 
C++ Template/STL study
C++ Template/STL studyC++ Template/STL study
C++ Template/STL studySeo Dong-yu
ย 
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌEffective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌDong Chan Shin
ย 
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7Yeonah Ki
ย 
Effective C++ Chapter 3 Summary
Effective C++ Chapter 3 SummaryEffective C++ Chapter 3 Summary
Effective C++ Chapter 3 SummarySeungYeonChoi10
ย 
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
ย 
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ดNAVER D2
ย 

Similar to M1 2 1 (15)

Effective cpp
Effective cppEffective cpp
Effective cpp
ย 
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์žฅ
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝ
ย 
More effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจMore effective c++ 3์ฃผ์ฐจ
More effective c++ 3์ฃผ์ฐจ
ย 
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตMore effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
ย 
Effective C++ Chapter 1 Summary
Effective C++ Chapter 1 SummaryEffective C++ Chapter 1 Summary
Effective C++ Chapter 1 Summary
ย 
C++ Template/STL study
C++ Template/STL studyC++ Template/STL study
C++ Template/STL study
ย 
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌEffective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
ย 
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
แ„€แ…ฆแ„‹แ…ตแ†ทแ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ตแ†ผแ„‹แ…ตแ†ธแ„†แ…ฎแ†ซ 7
ย 
Effective C++ Chapter 3 Summary
Effective C++ Chapter 3 SummaryEffective C++ Chapter 3 Summary
Effective C++ Chapter 3 Summary
ย 
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++
ย 
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
ย 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
ย 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
ย 

M1 2 1

  • 2. ํฌ์ธํ„ฐ(pointer)์™€ ์ฐธ์กฐ์ž(reference)๋ฅผ ๊ตฌ๋ถ„ํ•˜์ž ๊ฐ„๋‹จ ๊ตฌ๋ถ„ ! ํฌ์ธํ„ฐ * -> ์ฐธ์กฐ์ž . ์ฐธ์กฐ์ž์—๊ฒŒ๋Š” ๋„ ์ฐธ์กฐ์ž(null reference)๊ฐ€ ์—†๋‹ค. ->๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ! ๋งŒ์•ฝ ์—†์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด NULL์„ ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์“ฐ์ž. ! Null์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์กฐ์ฐจ ๋ถ€์ •ํ• ๋ ค๋ฉด ์ฐธ์กฐ์ž ์‚ฌ์šฉ
  • 3. ์ฐธ์กฐ์ž๋Š” ๊ผญ ์ดˆ๊ธฐํ™” ํ•ด์ค˜์•ผํ•จ ๊ผญ ์ดˆ๊ธฐํ™” ๋˜์–ด์žˆ๋Š๋‹ˆ ํฌ์ธํ„ฐ์ฒ˜๋Ÿผ null๊ฒ€์‚ฌ๋ฅผ ์•ˆํ•ด์ค˜๋„ ๋จ
  • 4. ์ฐธ์กฐ์ง€๋ฅผ ์จ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ! ์ฐธ์กฐํ•  ํฌ์ธํ„ฐ๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์กด์žฌํ•  ๊ฒƒ์ž„์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ์™€ ์ฐธ์กฐํ•˜๋Š” ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์—†์„๋•Œ ! ์—ฐ์‚ฐ์ž ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ
  • 5. ๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž ์บ์ŠคํŒ… ์•ˆ์“ฐ๋ฉด ์ข‹์ง€๋งŒ ์–ด์ฉ”์ˆ˜ ์—†์„๋•Œ ์“ฐ๊ฒŒ ๋จ ! ๊ทธ๋Ÿฐ๋ฐ C์Šคํƒ€์ผ ์บ์ŠคํŒ…์€ ํ•˜์ง€ ๋ง์ž.
  • 6. C++์— ์ถ”๊ฐ€๋œ static cast, const cast, dynamic cast, reinterpret cast์„ ์“ฐ์ž. C์Šคํƒ€์ผ (ํƒ€์ž…) ํ‘œํ˜„์‹ ! C++์Šคํƒ€์ผ static cast<ํƒ€์ž…>(ํ‘œํ˜„์‹)
  • 9. dynamic_cast ! ์ƒ์† ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๊ฐ€๋กœ์ง€๋ฅด๊ฑฐ๋‚˜ ํ•˜ํ–ฅ์‹œํ‚จ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์บ์ŠคํŒ…ํ•  ๋•Œ ์‚ฌ์šฉ ! -๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜ ์ฐธ์กฐ์ž์˜ ํƒ€์ž…์„ ํŒŒ์ƒ(derived) ํด๋ž˜์Šค, ํ˜•์ œ(sibling) ํด๋ž˜์Šค์˜ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ! ์บ์ŠคํŒ…์˜ ์‹คํŒจ์‹œ ๋„ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
  • 10. reinterpret_cast ! ์ •๋ง ๊ฐ•์ œ๋กœ ๋ญ๋“  ์บ์ŠคํŒ… ํ•ด์คŒ ! ์ •๋ง ์œ„ํ—˜ ๊ฐ€๋Šฅํ•˜๋ฉด ์“ฐ์ง€๋ง์ž.
  • 11. ๋ฐฐ์—ด๊ณผ ๋‹คํ˜•์„ฑ์€ ๊ฐ™์€ ์ˆ˜์ค€์œผ๋กœ ๋†“๊ณ  ๋ณผ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐ์„ ํ• ๋•Œ i*sizeof(๋ฐฐ์—ด ๋‚ด์˜ ์š”์†Œ ๊ฐ์ฒด ํ•˜๋‚˜) ์ด๋Ÿฐ์‹์œผ๋กœ ํ•˜๋Š”๋ฐ ! ๋‹คํ˜•์„ฑ์œผ๋กœ ์ธํ•ด ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ์‚ฌ์ด์ฆˆ๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹คโ€ฆ
  • 12. ์“ธ๋ฐ ์—†๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋Š” ๊ทธ๋ƒฅ ๋‘์ง€ ๋ง์ž ๊ธฐ๋ณธ ์ƒ์„ฑ์ž(default constructor) (์•„๋ฌด๋Ÿฐ ์ธ์ž๋„ ๋ฐ›์ง€ ์•Š๊ณ  ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ์ƒ์„ฑ์ž) ->์ดˆ๊ธฐํ™” ํ•˜๋Š” ์—ญํ•  ! -> ์™„์ „ํžˆ ์ดˆ๊ธฐํ™” ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ! ์—†์• ๋ฉด? (๋ฐฐ์—ด)์„ ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ ํž˜๋“ค์–ด์ง ํ…œํ”Œ๋ฆฟ ์ปจํ…Œ์ด๋„ˆ ํด๋ž˜์Šค์—์„œ๋Š” ๋” ํž˜๋“ค์–ด์ง ! ๊ทธ๋ƒฅ ๋†”๋‘๋ฉด? ์ดˆ๊ธฐํ™” ๋˜์—ˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์•Œ์•„? ๊ฒฐ๊ตญ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์—„์ฒญํ•ด์•ผํ•จ
  • 13. ์—ฐ์‚ฐ์ž(Operators) ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•ด์„œ โ€˜์ž˜โ€™์“ฐ๋ฉด ์ •๋ง ๊ฐ•๋ ฅํ•œ ํž˜์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž๋“ค๊ณผ์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ๋ฌด๋„ˆ์ง€๋ฉด์„œ ํ—ฌ์ด ํ„ฐ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
  • 14. ์‚ฌ์šฉ์ž ์ •์˜ ํƒ€์ž…๋ณ€ํ™˜ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์˜๋ฅผ ๋†“์ง€ ๋ง์ž c++ char๋ฅผ int ํƒ€์ž…์œผ๋กœ ํ˜น์€ short๋ฅผ double ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ€๋•Œ ๋ณ„ ๋ฌธ์ œ ์—†์—ˆ์ฃ ? -> ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์•„์„œ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ์Œ ! -๋‹จ์ผ ์ธ์ž ์ƒ์„ฑ์ž(single-argument constructor) ->์ธ์ž๋ฅผ ํ•˜๋‚˜๋งŒ ๋ฐ›์•„ ํ˜ธ์ถœ๋˜๋Š” ์ƒ์„ฑ์ž ! -์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž (implicit type conversion operator) ->ํƒ€์ž… ์•ž์— operator๋งŒ ๋ถ™์–ด ์žˆ๋Š” ํ•จ์ˆ˜
  • 15. ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž ! ์›ํ•˜์ง€ ์•Š์„๋•Œ์—๋„ ํ˜ธ์ถœ๋˜๊ณ  ๋ง์ˆ˜ ์žˆ๋‹ค. -> ์ฐพ๊ธฐ ํž˜๋“  ๋ฒ„๊ทธ๋ฅผ ์œ ๋ฐœ ! c_str๊ฐ™์ด ์ด๋ฆ„์„ ๋‹ฌ๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์“ฐ์ž. ํƒ€์ž… ๋ณ€ํ™˜ ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด ์˜๋„์น˜ ์•Š์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
  • 16. ๋‹จ์ผ ์ธ์ž ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•œ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์€ ๋ง‰๊ธฐ ๋” ํž˜ํ•ด๋“ค๋‹ค. -> explicit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์•”์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค. (๋ช…์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์€ ๊ณ„์† ํ—ˆ์šฉ) ! ! ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ํด๋ž˜์Šค : ํ”„๋ก์‹œ ํด๋ž˜์Šค(Proxy class) ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์—†๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋™์ž‘๋ฐฉ์‹์„ ์กฐ์ •ํ•œ๋‹ค.
  • 17. ์ฆ๊ฐ€ ๋ฐ ๊ฐ์†Œ ์—ฐ์‚ฐ์ž์˜ ์ „์œ„(pre๏ฌx)/ํ›„์œ„(post๏ฌx) ํ˜•ํƒœ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌ๋ถ„ํ•˜์ž ์˜Ÿ๋‚ ์—๋Š” ++,โ€”์—ฐ์‚ฐ์ž๋ฅผ ์ „์œ„ ๋ฐฉ์‹๊ณผ ํ›„์œ„ ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์„์ •๋„์˜€๋Š”๋ฐ ! ์ด์ œ๋Š” ์ „์œ„/ ํ›„์œ„ ํ˜•ํƒœ๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • 18. ์ „์œ„ ++ ํ›„์œ„ ++ ์ „์œ„ โ€” ํ›„์œ„ โ€” ์˜ค๋ฒ„๋กœ๋”ฉ๋œ ํ•จ์ˆ˜๋Š” ๊ทธ ํ•จ์ˆ˜์— ๋„˜๊ธฐ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋˜์ง€๋งŒ ! ์ฆ๊ฐ(++โ€”)์—ฐ์‚ฐ์ž๋Š” ์ธ์ž๋ฅผ ๋ฐ›์ง€ ์•Š์•„ ํ›„์œ„๋Š” intํƒ€์ž…์˜ ์ธ์ž๋ฅผ ๋ฐ›๊ณ  ํ›„์œ„ํ˜•ํƒœ์˜ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ 0์„ ๋„˜๊ธฐ๋„๋ก ํ•จ
  • 19. ์ „์œ„ ํ˜•ํƒœ์˜ ์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž๋Š” โ€œ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” (increment and fetch)" ์—ฐ์‚ฐ์ž (++i) ! ! ํ›„์œ„ ํ˜•ํƒœ๋Š” โ€œ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ  ์ฆ๊ฐ€์‹œํ‚ค๋Š”(fetch and increment)" ์—ฐ์‚ฐ์ž (i++) ! ํ›„์œ„ ํ˜•ํƒœ์—๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๋กœ์„œ ์ƒ๊ฒผ๋‹ค๊ฐ€ ์—†์–ด์ง€๋Š” ์ž„์‹œ ๊ฐ์ฒด(oldValue)๊ฐ€ ์žˆ์Œ ์ „์œ„ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ์‹œ๋‹ค. for(int i=0; i<10; ++i)
  • 20. &&, || ํ˜น์€ ,์—ฐ์‚ฐ์ž๋Š” ์˜ค๋ฒ„๋กœ๋ง ๋Œ€์ƒ์ด ์ ˆ๋Œ€๋กœ ์•„๋‹ˆ๋‹ค ๋‹จ์ถ•ํ‰๊ฐ€(short-circuit) ์•ž์—์„œ ์ด๋ฏธ ์กฐ๊ฑด์„ ๋ฒ—์–ด๋‚˜๋ฉด ๋’ค๋Š” ๊ทธ๋ƒฅ ๋ฌด์‹œ (์‹œ๊ฐ„ ๋‹จ์ถ• ๊ฐ€๋Šฅ!)
  • 21. ํ•˜์ง€๋งŒ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ•˜๋ฉด? ! -> ํ•จ์ˆ˜ ํ˜ธ์ถœ ์˜๋ฏธ๊ตฌ์กฐ๊ฐ€ ๋จ ! -> ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์šฐ์„ ์ ์œผ๋กœ ํ‰๊ณผ ๊ณผ์ •์„ ๊ฑฐ์นจ ! ->๋‹จ์ถ•ํ‰๊ฐ€ ์•ˆ๋จ
  • 22. ,์—ฐ์‚ฐ์ž : ํ‘œํ˜„์‹์„ ๊พธ๋ฏธ๋Š”๋ฐ์— ์‚ฌ์šฉ๋จ ์ด๋Ÿฐ์‹์˜ ์ฝ”๋“œ์งœ๋Š”๊ฒƒ๋„ ์‚ฌ์‹ค ์ฒ˜์Œ๋ด„โ€ฆ
  • 23. ์˜ค๋ฒ„๋กœ๋”ฉ ๊ฐ€๋Šฅ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ ๋ถˆ๊ฐ€๋Šฅ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์ฐธ๋œ ๋ชฉํ‘œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ฝ๊ณ , ์“ฐ๊ณ , ์ดํ•ดํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์ž๋Š” ๋ฐ์— ์žˆ์ง€ ๊ทธ๋ƒฅ ํฐ ์˜๋ฏธ ์—†์ด ์˜ค๋ฒ„๋กœ๋”ฉํ•˜์ง€ ๋ง์ž.
  • 24. new์™€ delete์˜ ์˜๋ฏธ๋ฅผ ์ •ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ดํ•ดํ•˜์ž โ€˜new ์—ฐ์‚ฐ์žโ€™์™€ โ€˜operator new'๋Š” ๋‹ค๋ฅธ๊ฒƒ ! operator new๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น new์—ฐ์‚ฐ์ž๋Š” operator new๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ›๊ณ  ๊ฐ์ฒด ๊ตฌ์‹ค์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•จ
  • 25. ๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new(Placement new) ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์€๋ฐ ์ƒ์„ฑ์ž๋Š” ๋”ฑ ํ•œ๋ฒˆ๋งŒ ์ดˆ๊ธฐํ™” ๋จ ์ผ๋‹จ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์žˆ๋Š”๋ฐ ๊ฑฐ๊ธฐ์— ์ดˆ๊ธฐํ™” ํ•ด์„œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด ! ๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new(Placement new)์„ ์‚ฌ์šฉํ•จ
  • 26. new ์—ฐ์‚ฐ์ž๊ฐ€ operator new๋ฅผ ํ˜ธ์ถœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” size_t ์ธ์ž์™€ ํ•จ๊ป˜ ์›ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋ณด๊ธˆ์ž๋ฆฌ๋กœ ์‚ผ์„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” void*๊ฐ€ ์ „๋‹ฌ ์ด operator new๊ฐ€ ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐพ์•„ ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
  • 27. new ์—ฐ์‚ฐ์ž - ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ทธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž ํ˜ธ์ถœ์ด ๋™์‹œ์— ์ด๋ฃจ์–ด์ง ! operator new - ์ƒ์„ฑ์ž ํ˜ธ์ถœX ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๋งŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ (๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋งค์ปค๋‹ˆ์ฆ˜์—๋„ ์†์„ ๋Œ€๊ณ  ์‹ถ์œผ๋ฉด operator new๋ฅผ ์ž‘์„ฑ ํ›„ new ์—ฐ์‚ฐ์ž ํ˜ธ์ถœํ•˜๋ฉด ๋จ)
  • 28. C++์—์„œ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์‚ญ์ œ(deletion)๋ž€ ์ด๋ฆ„์œผ๋กœ ๋ถ€๋ฅธ๋‹ค. delete ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ํ•˜๋Š”๊ฒƒ์„โ€ฆ ! new๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ operator delete๊ฐ€ ์žˆ์Œ ๊ฐ์ฒด ์‚ญ์ œ์™€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ(deletion & deallocation) ๋ฏธ์ดˆ๊ธฐํ™” ๋ฉ”๋ชจ๋ฆฌ๋งŒ์œผ๋กœ ์–ด๋–ค ์ผ์„ ํ•  ๋•Œ์—๋Š” new delete์—ฐ์‚ฐ์ž๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๊ทธ ๋Œ€์‹  operator new๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜์‹œ์—๋Š” operator deleteํ˜ธ์ถœ C++ ver malloc free
  • 29. ๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ delete ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ๋ฉด ์•ˆ๋˜๊ณ  ์ง์ ‘ ์†Œ๋ช…์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  operator delete๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
  • 30. ๋ฐฐ์—ด(Arrays) ๋ฐฐ์—ด์€ operator new๊ฐ€ ์•„๋‹ˆ๋ผ operator new[]๋ฅผ ์‚ฌ์šฉ ! ์—ญ์‹œ ์˜ค๋ฒ„๋กœ๋”ฉ ๊ฐ€๋Šฅ
  • 31. operator new์™€ operator new[]์˜ ์ฐจ์ด์  ! [] ๋ฒ„์ ผ์€ ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•ด ์ผ์ผ์ด ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. ! delete๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ operator delete[]์‚ฌ์šฉ