μ 체 κΈ116 [C++] 16-3. μμ(Inheritance)κ΄κ³μ μΈμ€ν΄μ€ μμ±, μλ©Έ μμ κ΄κ³μμ μμ±λλ μΈμ€ν΄μ€μ μ ν μ€ λ€νμ±μ κΈ°λ°μΌλ‘ λ§λ€μ΄μ§ μΈμ€ν΄μ€λ λ³΄ν΅ νμν΄λμ€(Derived Class)λ₯Ό ν΅ν΄ κΈ°λ³Έ ν΄λμ€(Base Class)λ₯Ό μ΄κΈ°νν©λλ€. μμ κ΄κ³μμ νμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ§λ λ€ νλλΌλ λ΄λΆμ μΌλ‘λ κΈ°λ³Έ ν΄λμ€μ μΈμ€ν΄μ€κΉμ§ λ§λ€μ΄μ§μ§λ§ κΈ°λ³Έ ν΄λμ€μ μμ±μλ μμλ‘ νΈμΆν μ μκΈ° λλ¬Έμ λλ€. λ°λλ‘ μΈμ€ν΄μ€μ μλ©Έλ λ§μ°¬κ°μ§μ λλ€. νμ ν΄λμ€λ§ μλ©Ένκ³ κΈ°λ³Έ ν΄λμ€μ μμμ΄ μλ©Έλμ§ μμΌλ©΄ λ©λͺ¨λ¦¬ λμ(Memory Leak)κ° λ°μν κ°λ₯μ±μ΄ μκΈ° λλ¬Έμ μ΄ λν νμ ν΄λμ€μμ μ± μμ ΈμΌ ν©λλ€. μμ±μ(Contructor) κΈ°λ³Έ ν΄λμ€(Base Class)μ μμ±μ νΈμΆ: νμ ν΄λμ€(Derived Class)μ μμ±μκ° νΈμΆλκΈ° μ μ λ¨Όμ κΈ°λ³Έ .. 2023. 6. 29. [C++] 16-2. λ€νμ±(Polymorphism)κ³Ό μΆμ ν΄λμ€(Abstract Class) μμ κ°μ ν¨μ(Pure Virtual Function)κ³Ό μΆμ ν΄λμ€(Abstract Class) μμ κ°μ ν¨μ(Pure Virtual Function)λ ν¨μμ μ μλ₯Ό κ°μ§μ§ μκ³ μ μΈλ§ ν¬ν¨νλ κ°μ ν¨μμ λλ€. μμ κ°μ ν¨μλ = 0μΌλ‘ νμλλ©°, νμ ν΄λμ€μμ λ°λμ ꡬνλμ΄μΌ ν©λλ€. μμ κ°μ ν¨μλ₯Ό κ°μ§ ν΄λμ€λ μΆμ ν΄λμ€λ‘ κ°μ£Όλμ΄ κ°μ²΄λ₯Ό μ§μ μμ±ν μ μμ΅λλ€. μΆμ ν΄λμ€λ μ£Όλ‘ μΈν°νμ΄μ€λ₯Ό μ μνκΈ° μν΄ μ¬μ©λ©λλ€. μμ κ°μ ν¨μμ μΌλ° κ°μ ν¨μμ μ°¨μ΄μ μ μμ κ°μ ν¨μλ κΈ°λ³Έ ν΄λμ€μμ μ μλ₯Ό κ°μ§μ§ μκ³ , νμ ν΄λμ€μμ ꡬνν΄μΌ νλ€λ μ μ λλ€. μ΄λ₯Ό ν΅ν΄ λ€νμ±μ μ§μνλ©΄μλ νμ ν΄λμ€μμ κ°κ°μ λ 립μ μΈ λμμ ꡬνν μ μμ΅λλ€. κ°μ ν¨μμ μμ κ°μ ν¨.. 2023. 6. 24. [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. μ΄μ 1 Β·Β·Β· 10 11 12 13 14 15 16 Β·Β·Β· 20 λ€μ