2019. 6. 6. 00:05ใPROGRAMMING/C & C++
1. ์์ฑ์
- ํด๋์ค์ ์ด๋ฆ๊ณผ ํจ์์ ์ด๋ฆ์ด ๋์ผํ๋ค.
- ๋ฐํํ์ด ์ ์ธ๋์ด ์์ง ์์ผ๋ฉฐ, ์ค์ ๋ก ๋ฐํํ์ง ์๋๋ค.
- "๊ฐ์ฒด ์์ฑ์ ๋ฑ ํ๋ฒ ํธ์ถ๋๋ค."
- ํจ์์ ์ผ์ข ์ด๋, ์ค๋ฒ๋ก๋ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๋งค๊ฐ๋ณ์์ '๋ํด๋ ๊ฐ'์ ์ค์ ํ ์ ์๋ค.
์์ฑ์๋ฅผ ์ด์ฉํ๋ฉด ์์ฑ๊ณผ ๋์์ ์ด๊ธฐํ ํ ์ ์๋ค.
์์ฑ์๋ ๋ฐ๋์ ํธ์ถ์ด ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์์ฑ์๋ฅผ ์ ์ํ์ง ์์ผ๋ฉด, ์ปดํ์ผ๋ฌ์ ์ํด
'๊ธฐ๋ณธ ์์ฑ์ (๋ํดํธ ์์ฑ์)'๋ผ๋ ๊ฒ ์๋์ผ๋ก ์ฝ์ ๋์ด ํธ์ถ๋๋ค.
[ '๋ฉค๋ฒ ์ด๋์ ๋ผ์ด์ '๋ฅผ ์ด์ฉํ ๋ฉค๋ฒ ์ด๊ธฐํ ]
๋ฉค๋ฒ ์ด๋์ ๋ผ์ด์ ๋ ๋ฉค๋ฒ๋ณ์๋ก ์ ์ธ๋ ๊ฐ์ฒด์ ์์ฑ์ ํธ์ถ์ ํ์ฉ๋๋ค.
์์ฑ์์ ๋ชธ์ฒด์์ ์ด๊ธฐํ ํ๋ ๋ฐฉ๋ฒ๊ณผ
์ด๋์ ๋ผ์ด์ ๋ฅผ ์ด์ฉํ๋ ์ด๊ธฐํ ๋ฐฉ๋ฒ ์ค์์ ์ ํ์ด ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ ํธํ๋ ํธ์ด๋ค.
- ์ด๊ธฐํ ๋์์ ๋ช ํํ ์ธ์ํ ์ ์๋ค.
- ์ฑ๋ฅ์ ์ฝ๊ฐ์ ์ด์ ์ด ์๋ค.
(์ด๋์ ๋ผ์ด์ ๋ฅผ ์ด์ฉํ๋ฉด, ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๊ฐ ์ด๋ฃจ์ด์ง๋ ํํ๋ก ๋ฐ์ด๋๋ฆฌ ์ฝ๋๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์ด๋ค.)
(const ๋ฉค๋ฒ๋ณ์๋ ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ด์ฉํ๋ฉด ์ด๊ธฐํ๊ฐ ๊ฐ๋ฅํ๋ค.)
[ ๊ฐ์ฒด์ ์์ฑ ๊ณผ์ ]
1 ๋จ๊ณ : ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น
2 ๋จ๊ณ : ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ด์ฉํ ๋ฉค๋ฒ๋ณ์(๊ฐ์ฒด)์ ์ด๊ธฐํ
3 ๋จ๊ณ : ์์ฑ์์ ๋ชธ์ฒด๋ถ๋ถ ์คํ
[ ๊ธฐ๋ณธ ์์ฑ์ (๋ํดํธ ์์ฑ์) ]
๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น ์ดํ, ์์ฑ์์ ํธ์ถ๊น์ง ์๋ฃ๋์ด์ผ '๊ฐ์ฒด'๋ผ ํ ์ ์๋ค.
๊ฐ์ฒด๊ฐ ๋๊ธฐ ์ํด์๋ ๋ฐ๋์ ํ๋์ ์์ฑ์๊ฐ ํธ์ถ๋์ด์ผ ํ๋ค.
์์ฑ์๋ฅผ ์ ์ํ์ง ์๋ ํด๋์ค์๋ C++ ์ปดํ์ผ๋ฌ์ ์ํด์ ๋ํดํธ ์์ฑ์๋ผ๋ ๊ฒ์ด ์๋์ผ๋ก ์ฝ์ ๋๋๋ค.
malloc ํจ์ ํธ์ถ ์ ์์ฑ์๋ ํธ์ถ๋์ง ์๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฒด๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ new ์ฐ์ฐ์๋ฅผ ์ด์ฉํด์ผ ํ๋ค.
[ private ์์ฑ์ ]
ํด๋์ค ๋ด๋ถ์์๋ง ๊ฐ์ฒด์ ์์ฑ์ ํ์ฉํ๋ ค๋ ๋ชฉ์ ์ผ๋ก
์์ฑ์๋ฅผ private์ผ๋ก ์ ์ธํ๊ธฐ๋ ํ๋ค.
private ์์ฑ์๋ ๋๋ก๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ์ด ๋๋ค.
ํนํ, ๊ฐ์ฒด์ ์์ฑ๋ฐฉ๋ฒ์ ์ ํํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ์๋ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ์ด ๋๋ค.
2. ์๋ฉธ์
๊ฐ์ฒด ์์ฑ์ ๋ฐ๋์ ํธ์ถ๋๋ ๊ฒ์ด ์์ฑ์๋ผ๋ฉด,
๊ฐ์ฒด ์๋ฉธ์ ๋ฐ๋์ ํธ์ถ๋๋ ๊ฒ์ ์๋ฉธ์์ด๋ค.
- ํด๋์ค ์ด๋ฆ์ '~'๊ฐ ๋ถ์ ํํ์ ์ด๋ฆ.
- ๋ฐํํ์ด ์ ์ธ๋์ด ์์ง ์์ผ๋ฉฐ, ์ค์ ๋ก ๋ฐํํ์ง ์๋๋ค.
- ๋งค๊ฐ๋ณ์๋ voidํ์ผ๋ก ์ ์ธ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฒ๋ก๋ฉ, ๋ํดํธ ๊ฐ ์ค์ ๋ ๋ถ๊ฐ๋ฅํ๋ค.
์๋ฉธ์๋ ๊ฐ์ฒด์๋ฉธ ๊ณผ์ ์์ ์๋์ผ๋ก ํธ์ถ์ด ๋๋ค.
ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ์ ์ํ์ง ์์ผ๋ฉด, ๊ธฐ๋ณธ ์๋ฉธ์(๋ํดํธ ์๋ฉธ์)๊ฐ ์๋์ผ๋ก ์ฝ์ ๋๋ค.
'PROGRAMMING > C & C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
19. [C++] ํด๋์ค ์์ (0) | 2019.06.11 |
---|---|
18. [C++] ํด๋์ค ๋ณต์ฌ์์ฑ์ (0) | 2019.06.07 |
16. [C++] ํด๋์ค์ ํน์ง / ํน์ฑ (0) | 2019.06.05 |
15. [C / C++] ํ์ผ๋ถํ ํ๊ธฐ (ํํฐ๋ถํ ) (0) | 2019.06.04 |
14. [C / C++] ํ์ผ ์ ์ถ๋ ฅ (0) | 2019.06.03 |