2019. 6. 7. 00:05ใPROGRAMMING/C & C++
1. C์คํ์ผ ์ด๊ธฐํ์ C++์คํ์ผ ์ด๊ธฐํ
์์ ๋ ๊ฐ์ง ์ด๊ธฐํ ๋ฐฉ์์ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์ผํ๋ค.
2. ๋ณต์ฌ ์์ฑ์
C์ธ์ด์์๋ '='๋ฅผ ๋์ ์ฐ์ฐ์ผ๋ก ๊ฐ์ฃผํ์๋ง,
๊ฐ์ฒด์ ๋ํด์๋ ๋ฉค๋ฒ ๋ ๋ฉค๋ฒ์ ๋ณต์ฌ๊ฐ ์ผ์ด๋๋ค.
์ฆ, ๋ณต์ฌ ์์ฑ์๊ฐ ํธ์ถ๋๋ค.
int iNum2 = iNum1;
int iNum2(iNum1);
์ด ๋ ๋ฌธ์ฅ์ด ๋์ผํ ์๋ฏธ๋ก ํด์๋๋ฏ์ด
CPlayer Player2 = Player1;
CPlayer Player2(Player1);
์ด ๋ ๋ฌธ์ฅ๋ ๋์ผํ ์๋ฏธ๋ก ํด์๋๋ค.
CPlayer Player2(Player1);
์ด ๋ฌธ์ฅ์ ๋ด๊ฒจ์๋ ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. CPlayerํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
2. ๊ฐ์ฒด์ ์ด๋ฆ์ Player2์ด๋ค.
3. Player1์ ์ธ์๋ก ๋ฐ์ ์ ์๋ ์์ฑ์ ํธ์ถ์ ํตํด์ ๊ฐ์ฒด์์ฑ์ ํ๋ค.
๋ณต์ฌ ์์ฑ์๋ฅผ ์ ์ํ์ง ์์ผ๋ฉด,
๋ฉค๋ฒ ๋ ๋ฉค๋ฒ์ ๋ณต์ฌ๋ฅผ ์งํํ๋ ๊ธฐ๋ณธ ๋ณต์ฌ ์์ฑ์(๋ํดํธ ๋ณต์ฌ ์์ฑ์)๊ฐ ์๋์ผ๋ก ์ฝ์ ๋๋ค.
๋ณต์ฌ ์์ฑ์์ ์ํ์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋ฉค๋ฒ ๋ ๋ฉค๋ฒ์ ๋ณต์ฌ์ ์ฌ์ฉ๋๋ ์๋ณธ์ ๋ณ๊ฒฝ์ํค๋ ๊ฒ์
๋ณต์ฌ์ ๊ฐ๋ ์ ๋ฌด๋๋จ๋ฆฌ๋ ํ์๊ฐ ๋๋, const ํค์๋๋ฅผ ์ฝ์ ํด์ ์ด๋ฌํ ์ค์๋ฅผ ๋ง๋ ๊ฒ์ด ์ข๋ค.
๋ณต์ฌ ์์ฑ์ ๋งค๊ฐ๋ณ์ ์ ์ธ์์ const๋ ํ์๊ฐ ์๋๋ค.
๊ทธ๋ฌ๋, ์ฐธ์กฐํ์ ์ ์ธ์ ์๋ฏธํ๋ &๋ ๋ฐ๋์ ์ฝ์ ํด์ผ ํ๋ค.
3. '๊น์ ๋ณต์ฌ'์ '์์ ๋ณต์ฌ'
๊ธฐ๋ณธ ๋ณต์ฌ ์์ฑ์๋ ๋ฉค๋ฒ ๋ ๋ฉค๋ฒ์ ๋ณต์ฌ๋ฅผ ์งํํ๋ค.
์ด๋ฌํ ๋ฐฉ์์ ๋ณต์ฌ๋ฅผ ๊ฐ๋ฆฌ์ผ '์์ ๋ณต์ฌ'๋ผ ํ๋๋ฐ,
์ด๋ ๋ฉค๋ฒ๋ณ์๊ฐ ํ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ์ ๋ฌธ์ ๊ฐ ๋๋ค.
๋ฉค๋ฒ ๋ณ์์ ์ด๋ฆ์ ์ ์ฅํ char* ๋ณ์๋ฅผ ์ถ๊ฐํด๋ณด๊ฒ ๋ค.
ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฌธ์ ๊ฐ ์๊ธด๊ฒ์ ์ ์ ์๋ค.
๊ธฐ๋ณธ ๋ณต์ฌ ์์ฑ์๋ ๋ฉค๋ฒ ๋ ๋ฉค๋ฒ๋ฅผ ๋จ์ํ ๋ณต์ฌ๋ง ํ๋ฏ๋ก,
๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ ๊ฒ ๋๋ค.
์ฆ, ๋ณต์ฌ์ ๊ฒฐ๊ณผ๋ก ํ๋์ ๋ฌธ์์ด์
๋ ๊ฐ์ ๊ฐ์ฒด๊ฐ ๋์์ ์ฐธ์กฐํ๋ ๊ผด์ ๋ง๋ค์ด๋ฒ๋ฆฐ๋ค.
์ด๋ก ์ธํด์ ๊ฐ์ฒด์ ์๋ฉธ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
(์ด๋ฏธ ์ง์์ง ๋ฌธ์์ด์ ๋์์ผ๋ก delete ์ฐ์ฐ์ ํ๊ธฐ ๋๋ฌธ์)
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋
ํฌ์ธํฐ๋ก ์ฐธ์กฐํ๋ ๋์๊น์ง ๊น๊ฒ ๋ณต์ฌํ๋
'๊น์ ๋ณต์ฌ'๋ฅผ ์งํํด์ผ ํ๋ค.
์ฆ, ๊ธฐ๋ณธ ๋ฉค๋ฒ ๋ ๋ฉค๋ฒ ๋ณต์ฌ๋ฅผ ์งํํ๊ณ
๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น ํ ๋ฌธ์์ด ๋ณต์ฌ๋ฅผ ์งํํ๋ค.
์๋ฉธ์ ํธ์ถ์ด ์ ์์ ์ผ๋ก ์๋ํ๋ ๋ชจ์ต์ด๋ค.
4. ๋ณต์ฌ ์์ฑ์ ํธ์ถ ์์
๋ณต์ฌ ์์ฑ์์ ํธ์ถํ์๋ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ๊ณผ๋ ๊ด๊ณ๊ฐ ์๊ธฐ ๋๋ฌธ์,
ํธ์ถ์ ์๊ธฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๋ค.
[ ๋ณต์ฌ ์์ฑ์์ ํธ์ถ์์ 3๊ฐ์ง ]
1. ๋จผ์ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋์ค์ ์์ฑ๋ ๊ฐ์ฒด์ ์์ฑ์ ์ธ์๋ก ์ ๋ฌํ ๋
2. Call by value ๋ฐฉ์์ ํจ์ ์ธ์๋ก ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ ๋
3. ํจ์์ ๋ฐํ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋, ์ฐธ์กฐํ์ผ๋ก ๋ฐํํ์ง ์์ ๊ฒฝ์ฐ
'PROGRAMMING > C & C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20. [C++] ํด๋์ค ์์๊ณผ ๋คํ์ฑ (0) | 2019.06.12 |
---|---|
19. [C++] ํด๋์ค ์์ (0) | 2019.06.11 |
17. [C++] ํด๋์ค ์์ฑ์์ ์๋ฉธ์ (0) | 2019.06.06 |
16. [C++] ํด๋์ค์ ํน์ง / ํน์ฑ (0) | 2019.06.05 |
15. [C / C++] ํ์ผ๋ถํ ํ๊ธฐ (ํํฐ๋ถํ ) (0) | 2019.06.04 |