2019. 6. 13. 07:15ใPROGRAMMING/C & C++
์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ
C++์์๋ ํจ์ ๋ฟ๋ง ์๋๋ผ ์ฐ์ฐ์๋ ์ค๋ฒ๋ก๋ฉ์ด ๊ฐ๋ฅํ๋ค.
์ฌ์ฉ์๊ฐ ๊ธฐ์กด์ ์ฐ์ฐ์๋ฅผ ์ฌ์ ์ํ๋ ํด๋์ค ๋ฌธ๋ฒ์ด๋ค.
์๋ก์ด ์ฐ์ฐ์๋ฅผ ์ฐฝ์กฐํ๋ ๋ฌธ๋ฒ์ ์๋๋ค.
๊ธฐ์กด ์ฐ์ฐ์์ ๋ณธ์ง์ ํ๋ ค์ ์๋๋ค.
์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ ๋ฐฉ๋ฒ์๋ ๋ค์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
1. ๋ฉค๋ฒํจ์์ ์ํ ๋ฐฉ๋ฒ
2. ์ ์ญํจ์์ ์ํ ๋ฐฉ๋ฒ.
๋ฉค๋ฒ ํจ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ฒ๋ก๋ฉ๋ ํจ์๊ฐ ์ ์ญํจ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ฒ๋ก๋ฉ๋ ํจ์๋ณด๋ค ์ฐ์ ์ ํธ์ถ๋๋ค.
[ 1. ๋ฉค๋ฒ ํจ์์ ์ํ ๋ฐฉ๋ฒ ]
'operator' ํค์๋์ '์ฐ์ฐ์'๋ฅผ ๋ฌถ์ด์ ํจ์์ ์ด๋ฆ์ ์ ์ํ๋ฉด,
ํจ์์ ์ด๋ฆ์ ์ด์ฉํ ํจ์ ํธ์ถ ๋ฟ๋ง ์๋๋ผ, ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ํจ์์ ํธ์ถ๋ ํ์ฉํด์ค๋ค.
๋ง์ ์ฐ์ฐ์, ๋บ์ ์ฐ์ฐ์์ ๋ํด์ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ ํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
[ ์ฆ๊ฐ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ ]
์ฐ์ฐ๋์ด ๋ ์ ์ ์ ์ ์ฆ๊ฐ์ด ๋ฏธ์ธํ์ง๋ง ์๋๊ฐ ๋ ๋น ๋ฅด๋ค.
[ 2. ์ ์ญ ํจ์์ ์ํ ๋ฐฉ๋ฒ ]
value ์ ๊ฐ์ฒด์ ๋ํ ์ ์ญ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ.
๋งค๊ฐ๋ณ์ ์ค ํ๋๋ ๋ฐ๋์ ๊ฐ์ฒด ํ์ ์ด๊ฑฐ๋, ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค ํ์ ์ด์ด์ผ ํ๋ค.
[ ์ค๋ฒ๋ก๋ฉ์ด ๋ถ๊ฐ๋ฅํ ์ฐ์ฐ์์ ์ข ๋ฅ ]
. (๋ฉค๋ฒ ์ ๊ทผ ์ฐ์ฐ์)
.* (๋ฉค๋ฒ ํฌ์ธํฐ ์ฐ์ฐ์)
:: (๋ฒ์ ์ง์ ์ฐ์ฐ์)
?: (์กฐ๊ฑด ์ฐ์ฐ์ - 3ํญ ์ฐ์ฐ์)
sizeof (๋ฐ์ดํธ ๋จ์ ํฌ๊ธฐ ์ฐ์ฐ์)
typeid (RTTI ๊ด๋ จ ์ฐ์ฐ์)
(ํ๋ณํ ์ฐ์ฐ์)
static_cast
dynamic_cast
const_cast
reinterpret_cast
[ ๋ฉค๋ฒ ํจ์ ๊ธฐ๋ฐ์ผ๋ก๋ง ์ค๋ฒ๋ก๋ฉ์ด ๊ฐ๋ฅํ ์ฐ์ฐ์ ]
= (๋์ ์ฐ์ฐ์)
() (ํจ์ ํธ์ถ ์ฐ์ฐ์)
[] (๋ฐฐ์ด ์ ๊ทผ ์ฐ์ฐ์. ์ธ๋ฑ์ค ์ฐ์ฐ์)
-> (๋ฉค๋ฒ ์ ๊ทผ์ ์ํ ํฌ์ธํฐ ์ฐ์ฐ์)
[ ์ฐ์ฐ์๋ฅผ ์ค๋ฒ๋ก๋ฉ ํ๋๋ฐ ์์ด์์ ์ฃผ์์ฌํญ ]
1. ๋ณธ๋์ ์๋๋ฅผ ๋ฒ์ด๋ ํํ์ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ ์ข์ง ์๋ค.
2. ์ฐ์ฐ์์ ์ฐ์ ์์์ ๊ฒฐํฉ์ฑ์ ๋ฐ๋์ง ์๋๋ค.
3. ๋งค๊ฐ๋ณ์์ ๋ํดํธ ๊ฐ ์ค์ ์ด ๋ถ๊ฐ๋ฅํ๋ค.
4. ์ฐ์ฐ์์ ์์ ๊ธฐ๋ฅ๊น์ง ๋นผ์์ ์๋ ์๋ค.
'PROGRAMMING > C & C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22. [C++] ํ ํ๋ฆฟ (Template) (0) | 2019.06.18 |
---|---|
20. [C++] ํด๋์ค ์์๊ณผ ๋คํ์ฑ (0) | 2019.06.12 |
19. [C++] ํด๋์ค ์์ (0) | 2019.06.11 |
18. [C++] ํด๋์ค ๋ณต์ฌ์์ฑ์ (0) | 2019.06.07 |
17. [C++] ํด๋์ค ์์ฑ์์ ์๋ฉธ์ (0) | 2019.06.06 |