μ 체 κΈ117 [C++] 17. μμΈμ²λ¦¬(Exception), std::exception μμΈμ²λ¦¬(Exception) C++μμ μμΈμ²λ¦¬λ νλ‘κ·Έλ¨μ μ€ν μ€μ λ°μνλ μμΈ μν©μ κ°μ§νκ³ μ μ ν μ‘°μΉλ₯Ό μ·¨νλ λ©μ»€λμ¦μ λλ€. μ΄λ₯Ό ν΅ν΄ νλ‘κ·Έλ¨μ μμ μ±μ λμ΄κ³ μμμΉ λͺ»ν λ¬Έμ μ λμ²ν μ μκ² λ©λλ€. μμΈλ μΌλ°μ μΌλ‘ νλ‘κ·Έλ¨μ΄ μ€ν μ€μ λ°μνλ μ€λ₯ λλ μμμΉ λͺ»ν μν©μ λνλ λλ€. μ΄λ¬ν μν©μ μ²λ¦¬νλ λ° μ¬μ©λλ κΈ°λ³Έμ μΈ C++ μμΈ μ²λ¦¬ λ©μ»€λμ¦μ λν΄ μμλ³΄κ² μ΅λλ€. μμΈ λμ§κΈ° (Throwing Exceptions) μμΈλ₯Ό λμ§ λλ throw ν€μλλ₯Ό μ¬μ©ν©λλ€. throw ν€μλ λ€μλ μμΈ κ°μ²΄κ° μ΅λλ€. μΌλ°μ μΌλ‘ μμΈ κ°μ²΄λ κΈ°λ³Έ λ°μ΄ν° νμ μ΄λ μ¬μ©μ μ μ ν΄λμ€ κ°μ²΄μΌ μ μμ΅λλ€. void doSomething(int value) { if (value.. 2023. 7. 23. [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. μ΄μ 1 Β·Β·Β· 10 11 12 13 14 15 16 Β·Β·Β· 20 λ€μ