์ ์ฒด ๊ธ126 [C++] 16-1. ์์(Inheritance)๊ณผ ๊ฐ์ ํจ์(Virtual Function) ์ด๋ฒ ํฌ์คํ ๋ถํฐ๋ ๊ฒฝ์ด์ฒด๋ก ๊ธ์ ์ฐ๊ฒ ์๋๋ค. ์ฌํ๊น์ง ํ์ด์ฒด๋ก ํฌ์คํ ํ๋๋ฐ, ๋ฑ๋ฑํ ๋๋์ด ๋ค์ด์ ์ง๊ธ๋ถํฐ๋ ์ข ๋ ์น์ ํ๊ฒ ์์ธํ๊ฒ ์ค๋ช ํ๋ ค๊ณ ๊ฒฝ์ด์ฒด๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค! ์์(Inheritance) ๊ฐ์ฒด ์งํฅ์ 4๋ ์์น(์บก์ํ, ์ถ์ํ, ์์, ๋คํ์ฑ) ์ค ์์ ๊ทธ๋ฆฌ๊ณ ๋คํ์ฑ์ ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค. ์์์ ๊ฐ์ฒด์งํฅ์ ๊ฝ์ด์ ํต์ฌ์ด๋ผ๊ณ ๋ ํ ์ ์์ต๋๋ค. ํด๋์ค ์์ฒด๋ง์ผ๋ก๋ ๊ฐ์ฒด๋ผ๋ฆฌ์ ๊ด๊ณ๋ฅผ ํํํ๋ค๋ฉด, ์์์ ํตํ ๋คํ์ฑ์ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๋์ฑ ํ์ฑํ๊ณ ์ฝ๊ฒ ํํํ ์ ์๋๋ก ํ์ฃ . ์์์ ํตํด ๊ธฐ์กด์ ์ ์๋ ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ํด๋์ค๋ฅผ ์ ์ํ ์ ์์ผ๋ฉฐ, ๊ณตํต๋ ๊ฒ์ ๊ณต์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. ์์์ ํด๋์ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ์ฌ ์ฝ๋ ์ฌ์ฌ์ฉ๊ณผ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋.. 2023. 6. 23. [C++] 15. ํด๋์ค(class)์ ๊ตฌ์กฐ์ฒด(struct) # ๊ตฌ์กฐ์ฒด(struct) ๊ตฌ์กฐ์ฒด(struct)๋ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด ํํํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ ํ์์ ๋๋ค. ๊ตฌ์กฐ์ฒด๋ ๋ฉค๋ฒ ๋ณ์์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, ๊ฐ ๋ฉค๋ฒ ๋ณ์๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ตฌ์กฐ์ฒด๋ ํด๋์ค์ ์ ์ฌํ์ง๋ง ํด๋์ค์๋ ๋ช ๊ฐ์ง ์ค์ํ ์ฐจ์ด์ ์ด ์์ต๋๋ค. ๊ตฌ์กฐ์ฒด๋ ์ผ๋ฐ์ ์ผ๋ก ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ํน์ ๋์์ ๊ตฌํํ๊ธฐ ์ํ ๋ฉค๋ฒ ํจ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ์ฌ์ค C++์์๋ ๋ฉค๋ฒ ํจ์๋ฅผ ์ผ๋ง๋ ์ง ๊ฐ์ง ์๋ ์์ง๋ง, ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ตฌ์กฐ์ฒด์ ํน์ฑ์ ๋ง์ ๊ธฐ๋ฅ์ ํ๋ ํจ์๋ ์ ์ํ์ง ์์ต๋๋ค.(๊ทธ๋ด ๋ฐ์ ํด๋์ค๋ฅผ ์จ์ผ ํฉ๋๋ค) ๋ฉค๋ฒ ๋ณ์๋ ์ฃผ๋ก ๊ตฌ์กฐ์ฒด ๋ด์์ ์ง์ ์ ๊ทผ๋์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ, ๊ตฌ์กฐ์ฒด์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ์์ฑ์ public์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค. ์ฆ.. 2023. 6. 9. [STL][functional] std::bind, std::function # std::bind, std::function std::bind ํจ์ ํ ํ๋ฆฟ์ ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ๋ ์์ ์ธ์ ๋ฆฌ์คํธ๋ก ๋ฐ์ธ๋ฉํ์ฌ ์๋ก์ด ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ์ด๋ ๋ฏธ๋ฆฌ ์ง์ ํ ์ธ์ ๊ฐ์ด๋ ์ธ์ ์์น์ ๊ฐ์ ๊ณ ์ ์ํค๋ ๋ฐ ์ฌ์ฉ๋๋ค. std::bind๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ์๋ฅผ ์ผ๋ถ ๊ณ ์ ํ๊ฑฐ๋ ์์๋ฅผ ๋ณ๊ฒฝํ์ฌ ํจ์ ํธ์ถ ์ ์ ์ฐ์ฑ์ ๋์ผ ์ ์๋ค. std::function์ ํจ์ ํฌ์ธํฐ์ ๋น์ทํ ๊ฐ๋ ์ผ๋ก, ์คํ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ํจ์ ๊ฐ์ฒด(wrapper)์ด๋ค. ๋ค์ํ ์ข ๋ฅ์ ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๊ณ ํธ์ถํ ์ ์์ผ๋ฉฐ, ํนํ ๋ฐํ์ ์์ ๋ค๋ฅธ ํจ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ์ฌ ์ฌ์ฉํ ์ ์๋ค. std::bind์ std::function์ ์๋ก ๊ถํฉ์ด ์ ๋ง๋๋ค. ํนํ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ์ ์ ๋ณด.. 2023. 6. 8. [STL] utility : minmax, move, forward, swap # std::minmax std::min๊ณผ std::max๋ ๋ง์ด ์จ๋ดค์ง๋ง std::minmax๋ ์จ๋ณด์ง ์์๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ฌํํ๋ค. std::minmax๋ std::pair๋ฅผ ๋ฐํํ๋๋ฐ, ์ฒซ ๋ฒ์งธ๊ฐ ์ต์๊ฐ, ๋ ๋ฒ์งธ๊ฐ ์ต๋๊ฐ์ด๋ค. min, max, minmax ๋ชจ๋ ๋ํดํธ ์ฐ์ฐ์๋ ' 2023. 6. 4. [C++] 14. ์ฐธ์กฐ์(Reference) โ ์ฐธ์กฐ์(Reference) ์ฐธ์กฐ์๋ ํฌ์ธํฐ์ ์๋นํ ์ ์ฌํ ๊ฐ๋ ์ด๋ค. C์์๋ ํฌ์ธํฐ๋ง ์์์ง๋ง C++์์๋ ์ฐธ์กฐ์(Reference)๋ผ๋ ๊ฐ๋ ์ด ๋์ ๋๋ฉด์ ์ข ๋ ํธํ๊ฒ ์ฃผ์๊ฐ์ ์ ๊ทผํ ์ ์๊ฒ ๋์๋ค. ์ฌ์ค C++์์๋ ํฌ์ธํฐ์ ์์กดํ๊ณ ์ถ์ง ์์๊ณ *๊ณผ ->๋ฅผ ์ค์ด๊ณ ์ถ์๋ค๊ณ ํ๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๊ณ ๋ณ์๋ผ๋ ๊ฒ์ผ๋ก ์ด๋ฆ์ ์ง์ด์ค๋ค. ์ฐธ์กฐ์๋ ์ด ์ด๋ฆ์ ๋ณ๋ช ์ ๋ถ์ฌ์ฃผ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด '๊ทผํธ'์ ๋ณ๋ช ์ด '๊ทผ๋๋ฆฌ'๋ผ๊ณ ํ์ ๋ '๊ทผํธ'์๊ฒ ๊ณผ์๋ฅผ ์ฃผ๋ ๊ฒ๊ณผ '๊ทผ๋๋ฆฌ'์๊ฒ ๊ณผ์๋ฅผ ์ฃผ๋ ๊ฒ์ ๋์ผํ๋ค. ๊ฒฐ๊ตญ, ์ฐธ์กฐ์๋ ๋ ๋ค๋ฅธ ์ด๋ฆ์ ๋ถ์ฌํ๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. #include using namespace std; int main() { int var = 10; int &ref .. 2023. 6. 2. ํจํค์ง์ __init__ํ์ผ ํจํค์ง(Package) ํ์ด์ฌ์์ ํจํค์ง๋ ์๋ฐ์ ๋์ผํ๊ฒ ํ์ผ์ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๋ํ๋ธ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ์ผ์ ์ ์๋์ด ์๋ ํด๋์ค๋ฅผ ํ์ฉํ ๋๋ ๋ชจ๋ํํ๋ก ๋ถ๋ฌ์จ๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์. person/ __init__.py male/ __init__.py run.py female/ __init__.py run.py Female/run.py์ test_run ํจ์๋ฅผ ์คํํด๋ณด์. ๋ค์๊ณผ ๊ฐ์ด ์คํํ ์ ์๋ค. import person.female.run person.female.run.test_run() Person.Female.run์ ํํ๋ก ๋ชจ๋์ ๋ถ๋ฌ์์ ๋ชจ๋์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ค. from person.female import run run.test_run() from๊ณผ .. 2023. 5. 31. ์ด์ 1 ยทยทยท 12 13 14 15 16 17 18 ยทยทยท 21 ๋ค์