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๋ก ๋์ฒดํ์ฌ ์ฌ์ฉํ๋ฉด ๋จ
'๊ณต๋ถ > CใC++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
error LNK2005 .obj์ ์ด๋ฏธ ์ ์๋์ด ์์ต๋๋ค ์ค๋ฅ ์์ ๋ฐฉ๋ฒ (0) | 2022.02.15 |
---|---|
ํ ํ๋ฆฟ ํจ์ (0) | 2021.12.11 |
[C++] ๋ฒ๋ธ์ ๋ ฌ์ ์ด์ฉํ ๋ญํน ์์คํ ๋ง๋ค๊ธฐ (0) | 2019.11.24 |
[C์ธ์ด] 01.Hello,World!๋ฅผ ์ถ๋ ฅํด๋ณด์ (0) | 2019.11.14 |
[C์ธ์ด] C์ธ์ด์ ์ฅ์ (0) | 2019.11.14 |