Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1096)

KoreanFoodie's Study

Effective Modern C++ | ν•­λͺ© 14 : μ˜ˆμ™Έλ₯Ό λ°©μΆœν•˜μ§€ μ•Šμ„ ν•¨μˆ˜λŠ” noexcept 둜 μ„ μ–Έν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 14 : μ˜ˆμ™Έλ₯Ό λ°©μΆœν•˜μ§€ μ•Šμ„ ν•¨μˆ˜λŠ” noexcept 둜 μ„ μ–Έν•˜λΌ 핡심 : 1. noexcept λŠ” ν•¨μˆ˜μ˜ μΈν„°νŽ˜μ΄μŠ€μ˜ 일뢀이닀. μ΄λŠ” ν˜ΈμΆœμžκ°€ noexcept 여뢀에 μ˜μ‘΄ν•  수 μžˆμŒμ„ λœ»ν•œλ‹€. 2. noexcept ν•¨μˆ˜λŠ” λΉ„ noexcept ν•¨μˆ˜λ³΄λ‹€ μ΅œμ ν™”μ˜ 여지가 크닀. 3. noexcept λŠ” 이동 μ—°μ‚°λ“€κ³Ό swap, λ©”λͺ¨λ¦¬ ν•΄μ œ ν•¨μˆ˜λ“€, 그리고 μ†Œλ©Έμžλ“€μ— νŠΉνžˆλ‚˜ μœ μš©ν•˜λ‹€. 4. λŒ€λΆ€λΆ„μ˜ ν•¨μˆ˜λŠ” noexcept κ°€ μ•„λ‹ˆλΌ μ˜ˆμ™Έμ— 쀑립적이닀. ν•¨μˆ˜λ₯Ό noexcept 둜 μ„ μ–Έν•  κ²ƒμΈμ§€μ˜ μ—¬λΆ€λŠ” μΈν„°νŽ˜μ΄μŠ€ μ„€κ³„μƒμ˜ 문제인데, μ΄λŠ” 클라..

Tutorials/C++ : Advanced 2022. 10. 26. 09:54
Effective Modern C++ | ν•­λͺ© 12 : μž¬μ •μ˜ ν•¨μˆ˜λ“€μ„ override 둜 μ„ μ–Έν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 12 : μž¬μ •μ˜ ν•¨μˆ˜λ“€μ„ override 둜 μ„ μ–Έν•˜λΌ 핡심 : 1. μž¬μ •μ˜ ν•¨μˆ˜λŠ” override 둜 μ„ μ–Έν•˜λΌ. 2. 멀버 ν•¨μˆ˜ μ°Έμ‘° ν•œμ •μ‚¬(reference qualifier)λ₯Ό μ΄μš©ν•˜λ©΄ 멀버 ν•¨μˆ˜κ°€ ν˜ΈμΆœλ˜λŠ” 객체(*this)의 μ™Όκ°’ 버전과 였λ₯Έκ°’ 버전을 λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆλ‹€. 기반 ν΄λž˜μŠ€μ—μ„œ μ •μ˜λœ 가상 ν•¨μˆ˜κ°€ νŒŒμƒ ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜λ˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒκ³Ό 같은 쑰건듀이 만쑱 λ˜μ–΄μ•Ό ν•œλ‹€. 기반 클래슀 ν•¨μˆ˜κ°€ κ°€μƒν•¨μˆ˜ 이어야 함 기반 ν•¨μˆ˜μ™€ νŒŒμƒ ν•¨μˆ˜μ˜ 이름이 동일해야 함(μ†Œλ©Έμž μ œμ™Έ) 기반 ν•¨μˆ˜μ™€ νŒŒμƒ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ ν˜•μ‹λ“€..

Tutorials/C++ : Advanced 2022. 10. 26. 09:53
Effective Modern C++ | ν•­λͺ© 11 : μ •μ˜λ˜μ§€ μ•Šμ€ λΉ„κ³΅κ°œ ν•¨μˆ˜λ³΄λ‹€ μ‚­μ œλœ ν•¨μˆ˜λ₯Ό μ„ ν˜Έν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 11 : μ •μ˜λ˜μ§€ μ•Šμ€ λΉ„κ³΅κ°œ ν•¨μˆ˜λ³΄λ‹€ μ‚­μ œλœ ν•¨μˆ˜λ₯Ό μ„ ν˜Έν•˜λΌ 핡심 : 1. μ •μ˜λ˜μ§€ μ•Šμ€ λΉ„κ³΅κ°œ ν•¨μˆ˜λ³΄λ‹€ μ‚­μ œλœ ν•¨μˆ˜λ₯Ό μ„ ν˜Έν•˜λΌ. 2. 비멀버 ν•¨μˆ˜μ™€ ν…œν”Œλ¦Ώ μΈμŠ€ν„΄μŠ€λ₯Ό λΉ„λ‘―ν•œ κ·Έ μ–΄λ–€ ν•¨μˆ˜λ„ μ‚­μ œν•  수 μžˆλ‹€. λ‹€λ₯Έ κ°œλ°œμžμ—κ²Œ μ œκ³΅ν•  μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ, κ·Έ κ°œλ°œμžκ°€ μ½”λ“œμ˜ νŠΉμ • ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ§€ λͺ»ν•˜κ²Œ ν•˜λŠ” κ°€μž₯ ν”ν•œ 방법은 κ·Έλƒ₯ κ·Έ ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜μ§€ μ•ŠλŠ” 것이닀. ν•˜μ§€λ§Œ μ»΄νŒŒμΌλŸ¬κ°€ λ•Œλ‘œλŠ” ν•¨μˆ˜λ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•˜λŠ” κ²½μš°κ°€ μžˆλ‹€. C++ 98 μ—μ„œλŠ” private 으둜 μ„ μ–Έ ν›„, μ •μ˜λ₯Ό ν•˜μ§€ μ•ŠλŠ” λ°©μ‹μœΌλ‘œ 이λ₯Ό λ°©μ§€ν•˜κΈ°λ„ ν•œλ‹€. μ‹€μ œλ‘œ μž…λ ₯..

Tutorials/C++ : Advanced 2022. 10. 26. 09:53
Effective Modern C++ | ν•­λͺ© 10 : λ²”μœ„ μ—†λŠ” enum 보닀 λ²”μœ„ μžˆλŠ” enum 을 μ„ ν˜Έν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 10 : λ²”μœ„ μ—†λŠ” enum 보닀 λ²”μœ„ μžˆλŠ” enum 을 μ„ ν˜Έν•˜λΌ 핡심 : 1. C++98 μŠ€νƒ€μΌμ˜ enum 을 μ΄μ œλŠ” λ²”μœ„ μ—†λŠ” enum 이라고 λΆ€λ₯Έλ‹€. 2. λ²”μœ„ μžˆλŠ” enum 의 μ—΄κ±°μžλ“€μ€ κ·Έ μ•ˆμ—μ„œλ§Œ 보인닀. 이 μ—΄κ±°μžλ“€μ€ 였직 μΊμŠ€νŒ…μ„ ν†΅ν•΄μ„œλ§Œ λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ λ³€ν™˜λœλ‹€. 3. λ²”μœ„ μžˆλŠ” enum κ³Ό λ²”μœ„ μ—†λŠ” enum λͺ¨λ‘ 바탕 ν˜•μ‹ 지정을 μ§€μ›ν•œλ‹€. λ²”μœ„ μžˆλŠ” enum 의 κΈ°λ³Έ 바탕 ν˜•μ‹μ€ int 이닀. λ²”μœ„ μ—†λŠ” enum μ—λŠ” κΈ°λ³Έ 바탕 ν˜•μ‹μ΄ μ—†λ‹€. 4. λ²”μœ„ μžˆλŠ” enum 은 항상 μ „λ°© 선언이 κ°€λŠ₯ν•˜λ‹€. λ²”μœ„ μ—†λŠ” enu..

Tutorials/C++ : Advanced 2022. 10. 26. 09:52
Effective Modern C++ | ν•­λͺ© 7 : 객체 생성 μ‹œ κ΄„ν˜Έ'( )' 와 μ€‘κ΄„ν˜Έ'{ }' λ₯Ό κ΅¬λΆ„ν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 7 : 객체 생성 μ‹œ κ΄„ν˜Έ'( )' 와 μ€‘κ΄„ν˜Έ'{ }' λ₯Ό κ΅¬λΆ„ν•˜λΌ 핡심 : 1. μ€‘κ΄„ν˜Έ μ΄ˆκΈ°ν™”λŠ” κ°€μž₯ κ΄‘λ²”μœ„ν•˜κ²Œ μ μš©ν•  수 μžˆλŠ” μ΄ˆκΈ°ν™” ꡬ문이며, 쒁히기 λ³€ν™˜μ„ λ°©μ§€ν•˜λ©°, C++ 의 κ°€μž₯ μ„±κ°€μ‹  ꡬ문 ν•΄μ„μ—μ„œ μžμœ λ‘­λ‹€. 2. μƒμ„±μž μ˜€λ²„λ‘œλ”© ν•΄μ†Œ κ³Όμ •μ—μ„œ μ€‘κ΄„ν˜Έ μ΄ˆκΈ°ν™”λŠ” κ°€λŠ₯ν•œ ν•œ std::initializer_list λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μžμ™€ λΆ€ν•©ν•œλ‹€. 3. κ΄„ν˜Έμ™€ μ€‘κ΄„ν˜Έμ˜ 선택이 의미 μžˆλŠ” 차이λ₯Ό λ§Œλ“œλŠ” μ˜ˆλŠ” 인수 두 개둜 std::vector 을 μƒμ„±ν•˜λŠ” 것이닀. 4. ν…œν”Œλ¦Ώ μ•ˆμ—μ„œ 객체λ₯Ό 생성할 λ•Œ κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•  것인지 μ€‘κ΄„ν˜Έ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:51
Effective Modern C++ | ν•­λͺ© 5 : λͺ…μ‹œμ  ν˜•μ‹ μ„ μ–Έλ³΄λ‹€λŠ” auto λ₯Ό μ„ ν˜Έν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 5 : λͺ…μ‹œμ  ν˜•μ‹ μ„ μ–Έλ³΄λ‹€λŠ” auto λ₯Ό μ„ ν˜Έν•˜λΌ 핡심 : 1. auto λ³€μˆ˜λŠ” λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™” ν•΄μ•Ό ν•˜λ©°, 이식성 λ˜λŠ” νš¨μœ¨μ„± 문제λ₯Ό μœ λ°œν•  수 μžˆλŠ” ν˜•μ‹ λΆˆμΌμΉ˜κ°€ λ°œμƒν•˜λŠ” κ²½μš°κ°€ 거의 μ—†μœΌλ©°, λŒ€μ²΄λ‘œ λ³€μˆ˜μ˜ ν˜•μ‹μ„ λͺ…μ‹œμ μœΌλ‘œ 지정할 λ•Œλ³΄λ‹€ νƒ€μžλŸ‰λ„ 더 적닀. 2. auto 둜 ν˜•μ‹μ„ μ§€μ •ν•œ λ³€μˆ˜λŠ” ν•­λͺ© 2 와 ν•­λͺ© 6 μ—μ„œ μ„€λͺ…ν•œ λ¬Έμ œμ λ“€μ„ κ²ͺ을 수 μžˆλ‹€. μ•„λž˜ μ˜ˆμ‹œλ₯Ό 보면, auto λ₯Ό μ“°λŠ” 것이 μ—¬λŸ¬λͺ¨λ‘œ ν›Œλ₯­ν•˜λ‹€λŠ” 것을 ν•œλˆˆμ— νŒŒμ•…ν•  수 μžˆμ„ 것이닀. template void print_from_b_to_e(It b, It e)..

Tutorials/C++ : Advanced 2022. 10. 26. 09:50