16. [C++] ํด๋์ค์ ํน์ง / ํน์ฑ
ํด๋์ค (class)
C++๋ถํฐ ๋ฑ์ฅํ ์ฌ์ฉ์ ์ ์ ์๋ฃํ.
๊ฐ์ฒด๋ฅผ ์ถ์ํํ ์๋ฃํ์ด๋ค. (๊ฐ์ฒด๋ฅผ ํํํ๋ ์๋ฃํ)
(์ถ์ํ : ๊ณตํต๋ ์์๋ค์ ์ถ์ถํ๋ ํ์.)
1. ํด๋์ค์ ์ ๊ทผ์ ์ด ์ง์์ (์ ๊ทผ์ ์ด ๋ ์ด๋ธ)
public - ๋ฉค๋ฒ์ ๋ํ ์ ๊ทผ์ ์ด๋์๋ ์ ๊ทผ ํ์ฉ.
private - ๋ฉค๋ฒ์ ๋ํ ์ ๊ทผ์ ํด๋์ค ๋ด๋ถ์์๋ง ํ์ฉ.
protected - ๋ฉค๋ฒ์ ๋ํ ์ ๊ทผ์ ์์ ๊ด๊ณ & ํด๋์ค ๋ด๋ถ์์๋ง ํ์ฉ.
์ฆ, ์ธ๋ถ์์๋ public ๋ฉค๋ฒ์ ๋ํด์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
(๋ฉค๋ฒ ๋ณ์๋ ๋ง์ฐฌ๊ฐ์ง)
2. ํด๋์ค์ 4๋ ์์ฑ
์๋ํ, ์บก์ํ, ์์์ฑ, ๋คํ์ฑ
1. ์๋ํ
๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ๊ธฐ๋ณธ private์ผ๋ก ๋๋ฉด์, ์ธ๋ถ๋ก๋ถํฐ์ ์ ๊ทผ์ ์ฐจ๋จํ๋ค.
์ธ๋ถ๋ก๋ถํฐ ์์น์๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์ฐจ๋จํ๋ค. (๋ฐ์ดํฐ ๋ณดํธ)
2. ์บก์ํ
๊ด๋ จ์๋ ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ํ๋ฒ์ ๋ฌถ์ด์ ์ ๊ณตํ๋ค.
๊ตฌ์ฑ์์๋ฅผ ์ธ๋ถ๋ก๋ถํฐ ์จ๊ธด๋ค. -> ์๋ ์์ฑ.
์ฌ์ฉ์๋ ๋ด๋ถ ๋ถ๋ถ์ ๋ชจ๋ฅด๋๋ผ๋ ์ฝ์๋ ๋ถ๋ถ์ ํตํ์ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
3. ์์์ฑ
์์์ ํด๋์ค๊ฐ ๊ฐ์ง ๊ณตํต๋ ์์๋ฅผ ๋ค๋ฅธ ํด๋์ค์๊ฒ ๋ฌผ๋ ค์ค ์ ์๋ค.
(์ฌ์ฌ์ฉ์ฑ ์ฆ๋, ์์ฐ์ฑ ์ฆ๋)
๊ธฐ๋ฅ์ ํ์ฅ๊ณผ ์ธ๋ถํ๊ฐ ๊ฐ๋ฅํ๋ค.
4. ๋คํ์ฑ
๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ "๋์ผํ ๋ฉ์์ง"๋ฅผ ํตํด ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ค.
์ฝ๋์ ์ ์ฐ์ฑ์ ์ฆ๋.
(์์๊ณผ ๋คํ์ฑ์ ์ถํ์ ๋ฐ๋ก ํฌ์คํ ์์ )