๐ C++ ๊ธฐ์ด ํ๋ฌ์ค 4์ฅ ์์ฝ (summary)
C++์ ์ธ ๊ฐ์ง ๋ณตํฉ ๋ฐ์ดํฐํ
๐ต ๋ฐฐ์ด
- ๋์ผํ ๋ฐ์ดํฐํ์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋์ ๋ฐ์ดํฐ ๊ฐ์ฒด ์์ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ๋ด์ ๊ฐ ์์์ ์ ๊ทผํ ์ ์์
๐ฃ ๊ตฌ์กฐ์ฒด
- ๋ฐ์ดํฐํ์ด ๋ค๋ฅธ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋์ ๋ฐ์ดํฐ ๊ฐ์ฒด ์์ ์ ์ฅํ๋ค. ๋ํธ(.) ๋ฉค๋ฒ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ์ ์ธ ๋ฉค๋ฒ์ ์ ๊ทผํ๋ค.
- ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ๊ตฌ์กฐ์ฒด ํ ํ๋ฆฟ์ ์์ฑํด์ผ ํ๋ค : ๊ตฌ์กฐ์ฒด ํ ํ๋ฆฟ์ ๊ตฌ์กฐ์ฒด ์์ ์ด๋ค ๋ฉค๋ฒ๋ฅผ ๋ฃ์ ๊ฒ์ธ์ง ์ ์ํ ๊ฒ์ด๋ค.
- ํ ํ๋ฆฟ ์ด๋ฆ ๋๋ ํ๊ทธ๋ ์๋ก์ด ๋ฐ์ดํฐํ์ ๋ํ๋ด๋ ์๋ณ์๋ก์, ๊ทธ ๋ฐ์ดํฐํ์ ๊ตฌ์กฐ์ฒด ๋ณ์๋ฅผ ์์ฑํ ์ ์๋ค.
๐ต ๊ณต์ฉ์ฒด
- ์ฌ๋ฌ ๊ฐ์ง ๋ฐ์ดํฐํ์ ์ ์ฅํ ์ ์์ผ๋ ์ค์ง ํ๋์ ๊ฐ๋ง ์ ์ฅํ๋ค. ์ด๋ค ๋ฐ์ดํฐํ์ด ์ฌ์ฉ๋๊ณ ์๋์ง๋ ๋ฉค๋ฒ ์ด๋ฆ์ผ๋ก ํ๋ณํด์ผ ํ๋ค.
ํฌ์ธํฐ
์ฃผ์๋ฅผ ์ ์ฅํ๋๋ก ์ค๊ณ๋ ๋ณ์. ํฌ์ธํฐ๋ ์์ ์ด ์ ํ๊ณ ์๋ ์ฃผ์๋ฅผ ์ง์ํ๊ณ ์๋ค. ํฌ์ธํฐ๋ฅผ ์ ์ธํ ๋๋ ๋ฐ๋์ ๊ทธ ํฌ์ธํฐ๊ฐ ์ด๋ค ๋ฐ์ดํฐํ์ ๊ฐ์ฒด๋ฅผ ์ง์ํ๊ณ ์๋์ง ํจ๊ป ์ง์ ํด์ผ ํ๋ค. ํฌ์ธํฐ์ ๊ฐ์ ์ฒจ์กฐ ์ฐ์ฐ์(*)๋ฅผ ์ ์ฉํ๋ฉด ํฌ์ธํฐ๊ฐ ์ง์ํ๋ ์ฃผ์์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ ์ป์ ์ ์๋ค.
ํฌ์ธํฐ์ ๋ฐฐ์ด์ ๊ฐ๊น์ด ๊ด๊ณ์ด๋ค. ar๊ฐ ๋ฐฐ์ด ์ด๋ฆ์ผ ๋, ar[i] ๋ *(ar + i) ๋ก ํด์๋๋ค. ์ด ๋ ๋ฐฐ์ด ์ด๋ฆ์ ๊ทธ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๋ก ํด์๋๋ค. ๊ทธ๋์ ๋ฐฐ์ด ์ด๋ฆ์ ํฌ์ธํฐ์ ๊ฐ์ ์ญํ ์ ํ๋ค. ๋ฐ๋๋ก ํฌ์ธํฐ ์ด๋ฆ์ ๋ฐฐ์ด ํ๊ธฐ์ ํจ๊ป ์ฌ์ฉํ์ฌ new๋ก ๋์ ๋ ๋์ ๋ฐฐ์ด์ ์์์ ์ ๊ทผํ ์ ์๋ค.
๋ฌธ์์ด
๋ ๋ฌธ์๋ก ๋๋๋ ์ฐ์๋ ๋ฌธ์๋ค์ด๋ค. ๋ฌธ์์ด์ ํฐ ๋ฐ์ดํ๋ก ์ฎ์ด์ ๋ฌธ์์ด ์์๋ก ๋ํ๋ผ ์ ์๋ค. ์ด๋ ๋๋ด๊ธฐ ๋ ๋ฌธ์์ด์ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ค. ๋ฌธ์์ด์ charํ์ ๋ฐฐ์ด์ ์ ์ฅํ ์ ์๋ค. ๋ํ ๋ฌธ์์ด์ charํ์ ์ง์ํ๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ํ๋ผ ์๋ ์๋ค. ์ด ๋ charํ์ ์ง์ํ๋ ํฌ์ธํฐ๋ ๊ทธ ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์์ ์ฃผ์๋ฅผ ์ง์ํ๋๋ก ์ด๊ธฐํ๋๋ค. strlen()ํจ์๋ ๋ ๋ฌธ์๋ฅผ ๋นผ๊ณ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฆฌํดํ๋ค. strcpy() ํจ์๋ ํ ์์น์์ ๋ค๋ฅธ ์์น๋ก ๋ฌธ์์ด์ ๋ณต์ฌํ๋ค. ์ด๋ฌํ ๋ฌธ์์ด ํจ์๋ค์ ์ฌ์ฉํ๋ ค๋ฉด cstring ๋๋ string.h ํค๋ ํ์ผ์ ํฌํจ์์ผ์ผ ํ๋ค.
string ํค๋ ํ์ผ์ด ์ง์ํ๋ C++ string ํด๋์ค๋, ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ์ข ๋ ์น๊ทผํ ์๋จ์ ๋์์ผ๋ก ์ ๊ณตํ๋ค.
ํน๋ณํ, string ๊ฐ์ฒด๋ค์ ๋ฌธ์์ด์ ์ ์ฅํ๋ ๋ฐ ๊ผญ ์๋ง์ ํฌ๊ธฐ๋ก ์๋์ผ๋ก ์กฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๋ณต์ฌํ ์ ์๋ค.
new ์ฐ์ฐ์
ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์์ new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ ์ ์๋ค. new ์ฐ์ฐ์๋ ๋์ ํ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฆฌํดํ๋ค. ๋ฆฌํด๋๋ ์ฃผ์๋ฅผ ํฌ์ธํฐ์ ๋์ ํ ์ ์๋ค. ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ทธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐ์ดํฐ ๊ฐ์ฒด๊ฐ ๊ฐ๋จํ ๋ณ์๋ผ๋ฉด ๊ฐ์ ์ฐธ์กฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํฌ์ธํฐ๊ฐ ์ง์ํ๋ ๊ฐ์ ๋ํ๋ผ ์ ์๋ค. ๋ฐ์ดํฐ ๊ฐ์ฒด๊ฐ ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ์๋ ํฌ์ธํฐ๋ฅผ ๋ง์น ๋ฐฐ์ด์ ์ด๋ฆ์ฒ๋ผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์์์ ์ ๊ทผํ ์ ์๋ค. ๋ฐ์ดํฐ ๊ฐ์ฒด๊ฐ ๊ตฌ์กฐ์ฒด์ผ ๊ฒฝ์ฐ์๋ ํ์ดํ ๋ฉค๋ฒ ์ฐ์ฐ์(->)๋ฅผ ํฌ์ธํฐ์ ํจ๊ป ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ์ ์ ๊ทผํ ์ ์๋ค.
new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ๊ณ , delete ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ฐํํ๋ ๊ฒ์ ๋ช ์์ ์ผ๋ก ์ ์ดํ ์ ์๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ
ํจ์ ์์์ ์ ์ธํ๋ ์๋ ๋ณ์์ ํจ์ ๋ฐ์์ ์ ์ธํ๊ฑฐ๋ static ์ด๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธํ๋ ์ ์ ๋ณ์๋ ์ตํต์ฑ์ด ์ ๋ค.
์๋ ๋ณ์๋ ์์ ์ด ์ ์๋์ด ์๋ ๋ธ๋ก์ด๋ ํจ์๊ฐ ์คํ๋๋ ๋์์๋ง ์กด์ฌํ๋ค.
์ ์ ๋ณ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์์ ์ง์์ ์ผ๋ก ์กด์ฌํ๋ค.
โ๏ธ ์ฐ์ต ๋ฌธ์
1๏ธโฃ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ ์ฌ๋ฐ๋ฅธ๊ฐ? ์ฌ๋ฐ๋ฅด๋ค๋ฉด ์ด๋ค ๋ด์ฉ์ด ์ถ๋ ฅ๋๋๊ฐ?
cout << (int*) "Home of the jolly bytes";
โ๏ธ ์ฌ๋ฐ๋ฅด๋ค. "Home of the jolly bytes"๋ ๋ฌธ์์ด ์์์ด๋ฏ๋ก ๊ทธ ๋ฌธ์์ด์ ์์ ์ฃผ์๋ก ํ๊ฐ๋๋ค. cout ๊ฐ์ฒด๋ charํ์ ์ด ์ฃผ์๋ฅผ ์ถ๋ ฅํ ๋ฌธ์์ด์ ์๋ด์๋ก ํด์ํ๋ค. ๊ทธ๋ฌ๋ (int*) ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ทธ ์ฃผ์๊ฐ intํ์ ์ง์ํ๋ ํฌ์ธํฐ๋ก ๋ณํ๋๋ค. ๋ฐ๋ผ์ ์ด ๊ตฌ๋ฌธ์ ๊ทธ ๋ฌธ์์ด์ด ์์๋๋ ์ฃผ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ถ์ฒ ๋ฐ ์ฐธ๊ณ : C++ ๊ธฐ์ด ํ๋ฌ์ค
HyunZzang์ ํ๋ก๊ทธ๋๋ฐ ๊ณต๊ฐ / ํจ๊ป ๊ณต๋ถํด์!!
๋์์ด ๋์ จ๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ๋ถํ๋๋ฆฝ๋๋ค :)