์ƒˆ์†Œ์‹

๊ณต๋ถ€/Cใ†C++

์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋ž€

  • -
728x90

1. shared_ptr

- ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅ

- ์ฐธ์กฐํ•˜๋Š” ๊ณผ์ •์—์„œ count๋ฅผ ํ•จ

- ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•ด์•ผํ•  ๊ฒฝ์šฐ(์—ฌ๋Ÿฌ๋ช…์ด์„œ ๊ฐ™์€ ์ •๋ณด ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ)

- ๋‹จ, ์ˆœํ™˜ ์ฐธ์กฐ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ

 

2. unique_ptr

- ํ•œ ํฌ์ธํ„ฐ๋‹น ํ•œ ์š”์†Œ๋งŒ์„ ๊ฐ€๋ฆฌํ‚ด

- ์ผ๋ฐ˜์ ์ธ ๋Œ€์ž… ์—ฐ์‚ฐ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ move ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์†Œ์œ ๊ถŒ์„ ๋„˜๊ฒจ์ฃผ๋Š”๊ฒƒ์€ ๊ฐ€๋Šฅ(์†Œ์œ ๊ถŒ์„ ๋„˜๊ฒจ์ฃผ๋ฉด ์›๋ณธ ํฌ์ธ      ํ„ฐ๋Š” NULL๋กœ ์„ค์ •๋จ)

- NULL์ด ์•„๋‹Œ unique_ptr์€ ํ•ญ์ƒ ์ž์‹ ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์†Œ๋ฉธ ์‹œ ์ž์‹ ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž์›์„ ํŒŒ๊ดดํ•จ

- ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋จ

- ์†Œ์œ ๊ถŒ ๋…์  ์ž์› ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•˜์ž

 

3. weak_ptr

- ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์ฐธ์กฐ ๊ฐ€๋Šฅ

- count๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ์ž๋™์œผ๋กœ ์ฐธ์กฐํ•  ๋Œ€์ƒ์„ ์žƒ๊ฒŒ๋จ

- ๋ฉ”๋ชจ๋ฆฌํ•ด์ œ ๊ธฐ๋Šฅ์€ ์—†์Œ

 

4. auto_ptr

- C++ 11 ์ดํ›„์—๋Š” ์‚ฌ๋ผ์ง„ ํฌ์ธํ„ฐ

- ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ ํฌ์ธํ„ฐ๋ผ์„œ ์–ด๋–ค ํƒ€์ž…์˜ ํฌ์ธํ„ฐ๋“ ์ง€ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

- new๋กœ ์ƒ์„ฑํ•œ ๋‹จ์ผ ๊ฐ์ฒด์—์„œ๋งŒ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ๋ณด์žฅํ•ด์„œ malloc ๋“ฑ์œผ๋กœ ํ• ๋‹นํ•  ๊ฒฝ์šฐ ํ•ด์ œ๊ฐ€ ๋˜์ง€ ์•Š์Œ

- ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋ฅผ 2๊ฐœ ์ด์ƒ ์ƒ์„ฑํ•˜๋ฉด ์•ˆ๋จ(์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ shared_ptr์—์„œ๋Š” ์ฐธ์กฐ ์นด์šดํŠธ๋ฅผ ํ†ตํ•ด์„œ ํ•ด๊ฒฐํ•จ)

- ๋‹จ์ ๋•Œ๋ฌธ์— unique_ptr๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋จ

 

 

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.