๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

weak_ptr1

[STL] ์Šค๋งˆํŠธํฌ์ธํ„ฐ(std::unique_ptr, std::shared_ptr, std::weak_ptr) ์Šค๋งˆํŠธํฌ์ธํ„ฐ ์Šค๋งˆํŠธํฌ์ธํ„ฐ๋Š” C++์— ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ ์ค‘์— ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. C++์˜ ์น˜๋ช…์ ์ธ ๋‹จ์  ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ง์ ‘ํ•˜๋Š” ๋ฐ์— ์žˆ์–ด์„œ ๋ฆฌ์Šคํฌ๋ฅผ ๋– ์•ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” ์Šค๋งˆํŠธํฌ์ธํ„ฐ๋กœ ์ธํ•ด์„œ ๋ชจ๋˜ C++์ด ํ•œ์ธต ํ’๋ถ€ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ํฐ ๋„์›€์„ ์ฃผ๋ฉฐ, ์ž์› ๊ด€๋ฆฌ๋ฅผ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ ํ•˜๊ณ  ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. std::unique_ptr std::unique_ptr์€ ๋…์ ์ ์œผ๋กœ ์†Œ์œ ํ•˜๋Š” ํฌ์ธํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋‹จ์ผ ์†Œ์œ ๊ถŒ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์˜ค์ง ํ•˜๋‚˜์˜ std::unique_ptr๋งŒ์ด ํŠน์ • ๊ฐ์ฒด๋ฅผ ์†Œ์œ ํ•˜๊ณ , ์ดํ›„์—๋Š” ํ•ด๋‹น ๊ฐ์ฒด์˜ ์†Œ์œ ๊ถŒ์„ ๋‹ค๋ฅธ std::unique_ptr๋กœ ์ด์ „ํ•˜๊ฑฐ๋‚˜, ์†Œ.. 2023. 8. 5.