More Related Content
More from Gyeongwook Choi
More from Gyeongwook Choi (7)
Mec 56
- 2. ํ๋ก์ ํด๋์ค๋ ์ด๋ค ์์
์ ์ํํจ์ ์์ด์ ์ค๊ฐ์ ์ญํ ์ ํ๋ ํด๋์ค
์ค์ ํ์ฉ์ ๋ค์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ [ ][ ] ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ฑฐ๋
[ ] ์ฐ์ฐ์์ ์ฝ๊ธฐ ๋๋ ์ฐ๊ธฐ ์ฉ๋๋ฅผ ํ์
ํ๊ฑฐ๋
์์์ ํ๋ณํ์ ๋ง๋๋ฐ ์ด์ฉ๋ ์ ์๋ค.
ํ์ง๋ง ๋ชจ๋ ๊ฒ์๋ ๋น์ฉ์ด ์๋ฏ์ด ํ๋ก์ ๊ฐ์ฒด๋ ํ๋์ ๊ฐ์ฒด์ด๋ฏ๋ก ์์ฑ ์๋ฉธ์ ๋น์ฉ์ด ํ์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฃผ์ด์ง ์์
์ ํ๋ก์ ๊ฐ์ฒด๋ฅผ ํตํด์ ์ฒ๋ฆฌํ๊ฒ ๋๋ฏ๋ก ์์
๊ณผ์ ์ด ๋ ๋ณต์กํด์ง๊ฒ ๋๋ค๋ ๋จ์ ์ด ์๋ค.
- 3. ํญ๋ชฉ 31 : ํจ์๋ฅผ ๋ ๊ฐ ์ด์์ ๊ฐ์ฒด(ํ์
)์ ๋ํด ๊ฐ์ ํจ์์ฒ๋ผ ๋์ํ๋๋ก ๋ง๋ค๊ธฐ
- 4. ํจ์ ํธ์ถ์ ๋ด๋นํ๋ map์ ๋ง๋ ๋ค.
์ด ๋งต์ ํค๋ ๊ฐ์ฒด์ ํ์
์ด๋ค. ๋ง์ฝ ์ด๋ค ํจ์๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ํ์ํ ๊ฐ์ฒด๊ฐ ๋์ด๋ฉด ๋ ๊ฐ์ฒด์ ํ์
์ ์กฐํฉ์ ์ฌ์ฉํ๋ค.
๋งต์ ๊ฐ์ ์ฃผ์ด์ง ํค์ ์ ํฉํ ํจ์ ํฌ์ธํฐ์ด๋ค.
์ค์ ์ฌ์ฉํ ๋ ํจ์๋ฅผ ํธ์ถํ๊ฒ ๋๋ฉด ์ฐ์ ์ธ์๋ก ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ ํ์
์ ํ์ธํ๋ค.
๊ฐ์ฒด ํ์
์ ํ์ธ์ typeid().name์ ํตํด์ ์ฒ๋ฆฌํ๋ฉฐ,
ํ์
๋ค์ ํ์ธํ ํ์ ์ด๋ฏธ ์์ฑํ ํจ์ ํ
์ด๋ธ map์์ ์ ํฉํ ํจ์ ํฌ์ธํฐ๋ฅผ ์ป๋๋ค.
์ด๋ ๊ฒ ์ป๋ ํจ์ ํฌ์ธํฐ์ ์์ ๊ฐ์ฒด ํ์
์ ํ์ธํ๋ ์ค์ ๊ฐ์ฒด๋ค์ ์ธ์๋ก ๋ฃ์ด์ ํจ์๋ฅผ ์คํ์ํจ๋ค.
- 5. ํญ๋ชฉ 31 : ๋ฏธ๋ ์งํฅ์ ์ธ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋์
- 6. ์ฝ๋์ ์์ด์ ์ ์ฝ์ด ์๋ค๋ฉด ์ฃผ์์ด๋ ๋ฌธ์์ ๊ฐ์ ๊ฐ์ ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋ ํ๋ก๊ทธ๋จ ์ธ์ด ์ฐจ์์์ ๊ฐ์ ํ๋๋ก ๊ตฌํํ ๊ฒ
๋ถํ์ํ๊ฒ ๋ฏธ๋ฆฌ๋ถํฐ ๋ณต์กํ๊ฒ ๋ง๋ค ํ์๋ ์๋ค. ํ์ํด์ง๋ฉด ๊ทธ๋ ๊ตฌํํ ๊ฒ
๋์
๊ณผ ๋ณต์ฌ ์์ฑ์๋ ๋ชจ๋ ํด๋์ค์ ๋ํด์ ์ ์
๋ณดํธ์ ์ผ๋ก ๊ธฐ๋ํ๋ ๊ฒฐ๊ณผ์ ๋ง์ถฐ์ ํ๋ก๊ทธ๋๋ฐ โ int๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ฐธ์กฐํ๋ ๊ฒ์ด ํ ๋ฐฉ๋ฒ
๋ง๊ฒ ์ฌ์ฉํ๊ธฐ์๋ ์ฝ๊ฒ, ํ๋ฆฌ๊ฒ ์ฌ์ฉํ๋ ์ด๋ ต๊ฒ ๋ง๋ค ๊ฒ
์ด์์ฑ๋ ๊ณ ๋ ค ํ ๊ฒ
unnamed namespace๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ file-scope์ ์ ์ ๋ณ์๋ ํจ์๋ฅผ ์ ์ธํจ์ผ๋ก์จ ๋ณ๊ฒฝ์ด ํ์ํ ๋ ์์ ๋ฒ์๋ฅผ ์ค์ผ ์ ์๊ฒ ํ ๊ฒ
- 7. ํญ๋ชฉ 32 : ์์๊ด๊ณ ๋ง๋จ์ ์์ง ์์ ํด๋์ค๋ ๋ฐ๋์ ์ถ์ ํด๋์ค๋ก ๋ง๋ค์
- 8. ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์์์ผ์ ํ์ ํด๋์ค๋ฅผ ๋ง๋ค๊ธฐ ๋ณด๋ค๋ ๊ณตํต์ ์ธ ๋ถ๋ถ์ ์ถ์ถํด์ ์์ ๊ฐ์ ํด๋์ค๋ฅผ ๊ฐ๊ฐ ์์๋ฐ๋ ๊ฒ์ด ์ข๋ค
์์ ๊ฐ์ ํด๋์ค๋ ๋ณดํต ์๋ฉธ์๋ฅผ ์์ ๊ฐ์ํจ์๋ก ๋ง๋ค์ด์ ๊ตฌํํ๋๋ฐ, ์์ ๊ฐ์ํจ์๋ก ๋ง๋ค๋๋ผ๋ ๊ตฌํ์ ํ์ํ๋ค.
ํ์ง๋ง ๋ชจ๋ ๊ฒ์ ์์ ๊ฐ์ ํด๋์ค๋ก ๋ง๋๋ ๊ฒ๋ ๋ญ๋น์ด๋ค. ๊ฒฐ๊ตญ ์ ๋นํ ์ ์ ์ฐพ๋ ๊ฒ์ด ์ค์
- 9. ํญ๋ชฉ 33 : ํ ํ๋ก๊ทธ๋จ์์ C++์ C๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ์
- 10. ๋ค์ ๋งน๊ธ๋ง
C++๋ ๊ฐ์ํจ์๋ผ๋ ์กด์ฌ๊ฐ ์๋ค๋ ๊ฒ์ด C์ ํฐ ์ฐจ์ด์ ์ด๋ค.
์ฌ๊ธฐ์ ๋น๋กฏ๋๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ C++๋ ์ฝ๋์์ ์ ํ ํจ์ ์ด๋ฆ(symbol)์ ์ปดํ์ผ๋ฌ๊ฐ ๋ฐ๊พผ๋ค๋ ๊ฒ์ด๋ค.
์ฆ C++์ฝ๋์์ C ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ฅผ ํธ์ถํ์์๋ ์ปดํ์ผ๋ฌ๊ฐ ํจ์ ์ด๋ฆ์ ์์ ํ๊ฒ ๋๋ฉด ์ ๋๋ก ์๋ํ์ง ์๊ฒ ๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ extern โCโ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฆ์๋ ๋ค์์คํ์ด์ค๋ฅผ ์ด์ฉํด ๋์์ ์ฌ๋ฌ ํจ์๋ฅผ ์ง์ ํ ์ ์๋ ์ด ํค์๋๋
์ปดํ์ผ๋ฌ๊ฐ ๋ค์ ๋งน๊ธ๋ง์ ํ์ง ๋ชปํ๊ฒ ํ๋ค.
์ปดํ์ผ๋ฌ์ ๋ฐ๋ผ์ ์ด๋ฅผ ๋ค๋ฅด๊ฒ ์ ์ฉํ๊ณ ์ถ๋ค๋ฉด C++ ์ปดํ์ผ๋ฌ์๋ง __cplusplus๊ฐ ์ ์ธ ๋์ด ์๋ ์ ์ ์ด์ฉํด์ #ifdef๋ก ๊ตฌํํ๋ค
์ ์ ๋ฐ์ดํฐ ์ด๊ธฐํ
C++์ ์ ์ ๋ฐ์ดํฐ ์ด๊ธฐํ์ ํด์ ๋ฅผ ์ํด์ main()ํจ์์ ์ ๋ค์ ํด๋น ์์
์ ํ๋ ํจ์๋ฅผ ๋ผ์ ๋ฃ๋ ๊ฐ๋
์ ์์
์ ์ํํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก main() ํจ์๋ฅผ C++๋ก ๋ง๋๋ ๊ฒ์ด ์ข์ผ๋ฉฐ, ๋ง์ฝ main()์ด C๋ก ๋์ด ์๋ค๋ฉด ์ด๋ฅผ ํธ์ถํ๋ C++ main()์ ๋์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
๊ฐ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ธ new / delete ์ malloc / free ์ด์ง๋ง ์์ฐํ ๋ค๋ฅด๋ฏ๋ก ๊ตฌ๋ถํด์ ์์ ๋ง์ถฐ์ ์ฌ์ฉํ๋ค
์๋ฃ๊ตฌ์กฐ์ ํธํ์ฑ
C์ C++ ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค๋ฉด C์์ ์ปดํ์ผ ๋ ์ ์๋ ๊ฐ์ฒด ํ์
์ ์ด์ฉํ๋ค.
POD๋ผ๊ณ ๋ถ๋ฅด๋ ์ด ์๋ฃ๊ตฌ์กฐ๋ ๊ฐ์ํจ์๋ฅผ ๊ฐ์ง ์ ์๋ค.
- 11. ํญ๋ชฉ 35 : C++ ์ธ์ด์ ์ต์ ํ์ค์๊ณผ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ต์ํด์ง์