c++์ ์ธ ๊ฐ์ง ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด ํ๋๋ก ๊ฒฐํฉ๋จ.
1. c์ ์ ์ฐจ์ ์ธ์ด (procedural language)
2. c++์ ๊ฐ์ฒด ์งํฅ ์ธ์ด (object-oriented languange) // c++์ ์ฌ์ฉํ๋ ์ฃผ๋ ์ด์
3. c++์ ํ ํ๋ฆฟ์ด ์ง์ํ๋ ์ผ๋ฐํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์
c์ ํ๋ก๊ทธ๋๋ฐ ์ฒ ํ
c++์ c์ ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ์ฒ ํ์ ์ ๋ชฉ์์ผฐ๊ธฐ ๋๋ฌธ์ ์์๋๋ฉด ์ข๋ค.
c๋ ์ ์ฐจ์ ์ธ์ด์ธ๋ฐ ์ ์ฐจ์ ์ธ์ด๋ ์ปดํจํฐ๊ฐ ์ํํด์ผ ํ ๋์๋ค์ ๋ช ํํ ๊ตฌ๋ถํ๊ณ , ๊ทธ ๊ตฌ๋ถ๋ ๋์๋ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํํ๋ ๊ฒ.
์ ์ฐจ์ : ๋ฐ์ดํฐ(ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๊ณ ์ฒ๋ฆฌํ๋ ์ ๋ณด) < ์๊ณ ๋ฆฌ์ฆ (ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ)
๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ (structured programming)
์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ์์ ์ ์ํํ๋ ๋ถ๊ธฐ๋ฌธ๋ค์ด ํ๋ก๊ทธ๋จ์ ์ค๊ณฝ์ ํ์ ํ๊ธฐ ์ด๋ ค์ด "์คํ๊ฒํฐ ํ๋ก๊ทธ๋จ" ์ด ๋ํ๋จ.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋ ๊ฒ์ด ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ ์ด๋ค.
ํํฅ์ (top-down) : ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋จ์ด ๊ณ ์ํ๋ ๋ฐฉ์
C์ธ์ด์์, ๊ท๋ชจ๊ฐ ํฐ ํ๋ก๊ทธ๋จ์ ์๊ณ ๋ค๋ฃจ๊ธฐ ์ฌ์ด ๋จ์์์ ์ผ๋ก ์ชผ๊ฐ๋ ๊ฒ. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ์ ์ธ ์์ ์ ์ํํ๋ ํจ์ ๋จ์๋ก ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (๋ฐ์ดํฐ > ์๊ณ ๋ฆฌ์ฆ)
๊ท๋ชจ๊ฐ ํฐ ํ๋ก๊ทธ๋๋ฐ์ด ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํด๊ฒฐ์ด ์ ๋์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋จ.
ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ์ ํน์ฑ์ ๋ง๊ฒ ๋ฐ์ดํฐํ ์์ฒด๋ฅผ ์ค๊ณํจ. (c++์์๋ ํด๋์ค(class)๊ฐ ์ด์ ๊ฐ์ ๋ชฉ์ ์ ์๋ก์ด ๋ฐ์ดํฐํ์.)
๊ฐ์ฒด(object)
ํด๋์ค์ ์ํด ๋ง๋ค์ด์ง๋ ํน์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
ex) ์์์ ์ผ๋ฐ์ ํน์ฑ -> ํด๋์ค
์ด๋ฆ, ์งํจ, ๊ธ์ฌ, ๋ฅ๋ ฅ
ํ ๋ช ์ ํน์ ์์ -> ๊ฐ์ฒด
ํ๊ธธ๋, ๋ถ์ฌ์ฅ, ์ฐ๋ด 1์ต...
ํด๋์ค
๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ ๋ถ๋ถ, ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ์ํํ ์ ์๋ ๋์ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ
ex) ์ฌ๊ฐํ์ ๊ทธ๋ฆฌ๋ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ -> ํด๋์ค ์ ์ธ ํ์
๋ฐ์ดํฐ ๋ถ๋ถ : ์ฌ๊ฐํ ์์น, ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด, ํ ๋๋ฆฌ ์์, ํํ
๋์ ๋ถ๋ถ : ์ฌ๊ฐํ ์์น ์ด๋, ์ฎ๊ธฐ๊ธฐ, ๋ณต์ฌ, ํฌ๊ธฐ ๋ณ๊ฒฝ
์ฌ๊ฐํ ํด๋์ค์ ํด๋นํ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด ์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ ๊ฐ๋ฅ.
์ํฅ์(bottom-up) ํ๋ก๊ทธ๋๋ฐ : ์ ์์ค์ ํด๋์ค๋ฅผ ๋จผ์ ์ค๊ณํ ํ ๊ณ ์์ค์ ํ๋ก๊ทธ๋จ ์ค๊ณ๋ก ์งํํ๋ ๋ฐฉ์
opp(๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ) ์ฅ์
1. ๋ฐ์ดํฐ์ ๋ฉ์๋๋ฅผ ํด๋์ค ์ ์ ์์ ํจ๊ป ๋ฃ์ ์ ์๋ค.
2. ์ฌํ์ฉ์ด ๊ฐ๋ฅํ ์์ค์ฝ๋ ์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅ
3. ์ ๋ณด๋ฅผ ์๋ํ ์ ์์ด ๋น์ธ๊ฐ๋ ์ ๊ทผ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ ๋ณดํธ ๊ฐ๋ฅ
4. ๋คํ์ ์ฌ์ฉํ์ฌ ์ด๋ฆ์ด ๊ฐ์ ์ฐ์ฐ์์ ํจ์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ์
5. ์์์ ์ด์ฉํ์ฌ ํ๋์ ํด๋์ค๋ก๋ถํฐ ์๋ก์ด ํด๋์ค๋ฅผ ์ ๋
c++์ ์ผ๋ฐํ ํ๋ก๊ทธ๋๋ฐ
์ผ๋ฐํ ํ๋ก๊ทธ๋๋ฐ (์๊ณ ๋ฆฌ์ฆ> ๋ฐ์ดํฐ) : ๋ฐ์ดํฐํ๊ณผ ๋ฌด๊ดํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ.
c++์ ์ ์, ์์๋ถ๊ฐ ์๋ ์, ๋ฌธ์, ๋ฌธ์์ด ๋ฑ ๋ค์ํ ์ ์ํฌ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃธ
๋ณดํต์ ํ๋ก๊ทธ๋จ์์ ๋ค์ํ ์ ํ์ ๋ฐ์ดํฐ๋ค์ ์ ๋ ฌํ๋ ค๋ฉด ๊ฐ ๋ฐ์ดํฐํ๋ง๋ค ๋ณ๊ฐ์ ์ ๋ ฌ ํจ์๋ฅผ ๋ง๋ค์ด์ผ ํ์ง๋ง
์ผ๋ฐํ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ผ๋ฐํ์ ์ํ ํจ์์ ์ฌ๋ฌ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ๋๋ฃจ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.