ํ ํ๋ฆฟ(2)
-
๋ค์ ์ ๋ฆฌํ๋ C++ STL [ ๊ฐ์ ]
[ STL (Standard Template Library) ] STL(Standard Template Libray)์ด๋ ํ์ค ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํ ํ๋ฆฟ(Template)์ ๋ฌด์์ผ๊น? ํ ํ๋ฆฟ(Template)์ C++์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ ๊ธฐ๋ฅ์ผ๋ก ์๋ฃํ์ ์ฝ๋งค์ด์ง ์๊ณ ๋์ํ ์ ์๋๋ก ๋ฒ์ฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด ์ค๋ค. ์๋ฅผ ๋ค์ด์ Add๋ผ๋ ๋ง์ ํจ์๋ฅผ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ์. ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ์๋ฃํ์ ์๊ด์์ด ํจ์๋ฅผ ์์ฑํ์ฌ ๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ์์ ํ ํ๋ฆฟ ํจ์ Add๋ ์ด๋ค ์๋ฃํ์ด๋๋ผ๋ ํจ์์ ์ ๋ฌ๋๋ ๋ ๊ฐ์ ์ธ์๊ฐ ๊ฐ์ ์๋ฃํ์ด๊ธฐ๋ง ํ๋ฉด ๋ ์๋ฃํ์ ๋ํ ์ ์๋ Addํจ์๋ฅผ ๋ง๋ค์ด๋ธ๋ค. ์ด๋ ๊ฒ ๋ฒ์ฉ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ค๋ฆญ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ ํ๋ค. ์ฆ, ์๋ฃ..
2020.08.05 -
22. [C++] ํ ํ๋ฆฟ (Template)
ํ ํ๋ฆฟ (Template) ์๋ฃํ์ ์ฝ๋งค์ด์ง ์๊ณ ๋ชจ๋ ํธํํธ๋๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ฒ ๋์์ฃผ๋ C++ ๊ธฐ๋ฅ. 1. ํจ์ ํ ํ๋ฆฟ ํจ์ ํ ํ๋ฆฟ์ ํจ์๋ฅผ ๋ง๋ค์ด ๋ธ๋ค. ํจ์์ ๊ธฐ๋ฅ์ ๊ฒฐ์ ๋์ด ์์ง๋ง, ์๋ฃํ์ ๊ฒฐ์ ๋์ด์์ง ์๋ค. ๋์ค์ T๋ฅผ ๋์ ํด์ ์ค์ ์๋ฃํ์ ๊ฒฐ์ ํด์ผํ๋ค. (typename์ ๋์ ํด์ class๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค. T๋ผ๋ ๋ฌธ์ ๋์ ๋ค๋ฅธ ๋ฌธ์๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.) ์์ ๋ณด์ธ ๋ค์์ ์ ์๋ฅผ ๊ฐ๋ฆฌ์ผ 'ํจ์ ํ ํ๋ฆฟ(funtion template)'์ด๋ผ ํ๋ค. ๋ฐ๋ฉด, ์์ ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ์ปดํ์ผ๋ฌ๊ฐ ๋ง๋ค์ด ๋ด๋ ํจ์๋ค์ 'ํ ํ๋ฆฟ ํจ์(template funtion)'์ด๋ผ ํ๋ค. int Add(int a, int b) { return a+b; } 2. ๋ ๊ฐ ์ด์์ typename ์ง์ ํ ํ๋ฆฟ์..
2019.06.18