17. [C++] ํด๋ž˜์Šค ์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž

2019. 6. 6. 00:05ใ†PROGRAMMING/C & C++

 

 

 

1. ์ƒ์„ฑ์ž

 

- ํด๋ž˜์Šค์˜ ์ด๋ฆ„๊ณผ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜๋‹ค.

- ๋ฐ˜ํ™˜ํ˜•์ด ์„ ์–ธ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, ์‹ค์ œ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.

- "๊ฐ์ฒด ์ƒ์„ฑ์‹œ ๋”ฑ ํ•œ๋ฒˆ ํ˜ธ์ถœ๋œ๋‹ค."

 

- ํ•จ์ˆ˜์˜ ์ผ์ข…์ด๋‹ˆ, ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋งค๊ฐœ๋ณ€์ˆ˜์— '๋””ํด๋“œ ๊ฐ’'์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜๋ฉด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ƒ์„ฑ์ž๋Š” ๋ฐ˜๋“œ์‹œ ํ˜ธ์ถœ์ด ๋œ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ์ž๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์œผ๋ฉด, ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด

'๊ธฐ๋ณธ ์ƒ์„ฑ์ž (๋””ํดํŠธ ์ƒ์„ฑ์ž)'๋ผ๋Š” ๊ฒŒ ์ž๋™์œผ๋กœ ์‚ฝ์ž…๋˜์–ด ํ˜ธ์ถœ๋œ๋‹ค.

 

 


 

 

 [ '๋ฉค๋ฒ„ ์ด๋‹ˆ์…œ๋ผ์ด์ €'๋ฅผ ์ด์šฉํ•œ ๋ฉค๋ฒ„ ์ดˆ๊ธฐํ™” ]

๋ฉค๋ฒ„ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜๋กœ ์„ ์–ธ๋œ ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž ํ˜ธ์ถœ์— ํ™œ์šฉ๋œ๋‹ค.

 

์ƒ์„ฑ์ž์˜ ๋ชธ์ฒด์—์„œ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ

์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์ด์šฉํ•˜๋Š” ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• ์ค‘์—์„œ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ด๋‹ค.

- ์ดˆ๊ธฐํ™” ๋Œ€์ƒ์„ ๋ช…ํ™•ํžˆ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์„ฑ๋Šฅ์— ์•ฝ๊ฐ„์˜ ์ด์ ์ด ์žˆ๋‹ค.

(์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์ด์šฉํ•˜๋ฉด, ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ํ˜•ํƒœ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)

(const ๋ฉค๋ฒ„๋ณ€์ˆ˜๋„ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์ด์šฉํ•˜๋ฉด ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.)

 

 

 


 

 

[ ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๊ณผ์ • ]

 

1 ๋‹จ๊ณ„ : ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํ• ๋‹น

2 ๋‹จ๊ณ„ : ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์ด์šฉํ•œ ๋ฉค๋ฒ„๋ณ€์ˆ˜(๊ฐ์ฒด)์˜ ์ดˆ๊ธฐํ™”

3 ๋‹จ๊ณ„ : ์ƒ์„ฑ์ž์˜ ๋ชธ์ฒด๋ถ€๋ถ„ ์‹คํ–‰

 

 


 

 

[ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž (๋””ํดํŠธ ์ƒ์„ฑ์ž) ]

 

๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํ• ๋‹น ์ดํ›„, ์ƒ์„ฑ์ž์˜ ํ˜ธ์ถœ๊นŒ์ง€ ์™„๋ฃŒ๋˜์–ด์•ผ '๊ฐ์ฒด'๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•œ๋‹ค.

์ƒ์„ฑ์ž๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค์—๋Š” C++ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด์„œ ๋””ํดํŠธ ์ƒ์„ฑ์ž๋ผ๋Š” ๊ฒƒ์ด ์ž๋™์œผ๋กœ ์‚ฝ์ž…๋„๋‹ˆ๋‹ค.

 

 

malloc ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ƒ์„ฑ์ž๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•  ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜๋“œ์‹œ new ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

 

 


 

 

[ private ์ƒ์„ฑ์ž ]

 

ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ํ—ˆ์šฉํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ

์ƒ์„ฑ์ž๋ฅผ private์œผ๋กœ ์„ ์–ธํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

private ์ƒ์„ฑ์ž๋„ ๋•Œ๋กœ๋Š” ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๋œ๋‹ค.

ํŠนํžˆ, ๊ฐ์ฒด์˜ ์ƒ์„ฑ๋ฐฉ๋ฒ•์„ ์ œํ•œํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๋œ๋‹ค.

 

 

 


 

 

2. ์†Œ๋ฉธ์ž

 

๊ฐ์ฒด ์ƒ์„ฑ์‹œ ๋ฐ˜๋“œ์‹œ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์ƒ์„ฑ์ž๋ผ๋ฉด,

๊ฐ์ฒด ์†Œ๋ฉธ์‹œ ๋ฐ˜๋“œ์‹œ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์€ ์†Œ๋ฉธ์ž์ด๋‹ค.

 

- ํด๋ž˜์Šค ์ด๋ฆ„์— '~'๊ฐ€ ๋ถ™์€ ํ˜•ํƒœ์˜ ์ด๋ฆ„.

- ๋ฐ˜ํ™˜ํ˜•์ด ์„ ์–ธ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, ์‹ค์ œ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.

- ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” voidํ˜•์œผ๋กœ ์„ ์–ธ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„๋กœ๋”ฉ, ๋””ํดํŠธ ๊ฐ’ ์„ค์ •๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์†Œ๋ฉธ์ž๋Š” ๊ฐ์ฒด์†Œ๋ฉธ ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ์ด ๋œ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ์ •์˜ํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ธฐ๋ณธ ์†Œ๋ฉธ์ž(๋””ํดํŠธ ์†Œ๋ฉธ์ž)๊ฐ€ ์ž๋™์œผ๋กœ ์‚ฝ์ž…๋œ๋‹ค.