λͺ©λ‘μ 체 κΈ (1103)
KoreanFoodie's Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IldVn/btrPvxawmcB/vE0Vz959cfSF9hGwis6001/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 27 : μΊμ€ν μ μ μ½, λ μ μ½! μμ§ λ§μ ν΅μ¬ : 1. λ€λ₯Έ λ°©λ²μ΄ κ°λ₯νλ€λ©΄ μΊμ€ν μ νΌνμ. νΉν μν μ±λ₯μ λ―Όκ°ν μ½λμμ dynamic_cast λ λͺ λ²μ΄κ³ λ€μ μκ°νμ. μ€κ³ μ€μ μΊμ€ν μ΄ νμν΄μ‘λ€λ©΄, μΊμ€ν μ μ°μ§ μλ λ€λ₯Έ λ°©λ²μ μλν΄ λ³΄μ. 2. μΊμ€ν μ΄ μ΄μ© μ μμ΄ νμνλ€λ©΄, ν¨μ μμ μ¨κΈΈ μ μλλ‘ ν΄ λ³΄μ. μ΄λ κ² νλ©΄ μ΅μν μ¬μ©μλ μμ μ μ½λμ μΊμ€ν μ λ£μ§ μκ³ μ΄ ν¨μλ₯Ό νΈμΆν μ μκ² λλ€. 3. ꡬν μ€νμΌμ μΊμ€νΈλ₯Ό μ°λ €κ±°λ C++ μ€νμΌμ μΊμ€νΈλ₯Ό μ νΈνμ. λ°κ²¬νκΈ°λ μ½κ³ , μ€κ³..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bBpf10/btrPt6kkkAg/kzqdu6pqirRrCe6zUKI4cK/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 26 : λ³μ μ μλ λ¦μΆ μ μλ λ°κΉμ§ λ¦μΆλ κ·Όμ±μ λ°ννμ ν΅μ¬ : λ³μ μ μλ λ¦μΆ μ μμ λκΉμ§ λ¦μΆμ. νλ‘κ·Έλ¨μ΄ λ κΉλν΄μ§λ©° ν¨μ¨λ μ’μμ§λ€! λ€μ μμλ₯Ό 보μ. std::string encryptPassword(const std::string& password) { using namespace std; string encrypted; // 1. encrypted μ κ΄λ ¨ μλ μΌ ... // 2. encrypted μ κ΄λ ¨ μλ μΌ ... return encrypted; } 1λ²μμ μμΈκ° λ°μν΄μ μλ―Έμκ² encr..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bZnd59/btrPwZxUbkY/64nia1IkRhfTriNQMT5Fv0/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 25 : μμΈλ₯Ό λμ§μ§ μλ swap μ λν μ§μλ μκ°ν΄ 보μ ν΅μ¬ : 1. std::swap μ΄ μ¬μ©μ μ μ νμ μ λν΄ λλ¦¬κ² λμν μ¬μ§κ° μλ€λ©΄ swap λ©€λ² ν¨μλ₯Ό μ 곡νμ. μ΄ λ©€λ² swap μ μμΈλ₯Ό λμ§μ§ μλλ‘ λ§λ€μ. 2. λ©€λ² swap μ μ 곡νμΌλ©΄, μ΄ λ©€λ²λ₯Ό νΈμΆνλ λΉλ©€λ² swap λ μ 곡νμ. ν΄λμ€(ν νλ¦Ώμ΄ μλ)μ λν΄μλ, std::swap λ νΉμνν΄ λμ. 3. μ¬μ©μ μ μ₯μμ swap μ νΈμΆν λλ, std::swap μ λν using μ μΈμ λ£μ΄ μ€ νμ λ€μμ€νμ΄μ€ νμ μμ΄ swap μ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5WggO/btrPycKnHHV/tWCoQZR27AV0CTjrZHOpW0/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 24 : νμ λ³νμ΄ λͺ¨λ 맀κ°λ³μμ λν΄ μ μ©λμ΄μΌ νλ€λ©΄ λΉλ©€λ² ν¨μλ₯Ό μ μΈνμ ν΅μ¬ : μ΄λ€ ν¨μμ λ€μ΄κ°λ λͺ¨λ 맀κ°λ³μ(this ν¬μΈν°κ° κ°λ¦¬ν€λ κ°μ²΄λ ν¬ν¨ν΄μ) μ λν΄ νμ λ³νμ ν΄ μ€ νμκ° μλ€λ©΄, κ·Έ ν¨μλ λΉλ©€λ²μ΄μ΄μΌ νλ€. μ 리μλ₯Ό λνλ΄λ ν΄λμ€κ° μλ€κ³ νκ³ , κ³±μ μ°μ°μ λ§λ λ€κ³ κ°μ νμ. class Rational { public: Rational(int numerator = 0, int denominator = 1); int numerator() const; int denominator() const;..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0bhAp/btrPx0QP2HP/MIjVmeOlCb6rWRXMT2KdmK/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 23 : λ©€λ² ν¨μ보λ€λ λΉλ©€λ² λΉνλ λ ν¨μμ λ κ°κΉμμ§μ ν΅μ¬ : λ©€λ² ν¨μ보λ€λ λΉλ©€λ² λΉνλ λ ν¨μλ₯Ό μμ£Ό μ°μ. μΊ‘μν μ λκ° λμμ§κ³ , ν¨ν€μ§ μ μ°μ±λ 컀μ§λ©°, κΈ°λ₯μ μΈ νμ₯μ±λ λμ΄λλ€. μΉ λΈλΌμ°μ μμ μΊμλ₯Ό λΉμ°λ ν¨μ, URL κΈ°λ‘μ μμ λ ν¨μ, μΏ ν€λ₯Ό μ κ±°νλ ν¨μκ° μλ€κ³ νμ. μΈ λμμ λμμ νλλ‘ λ§λλ ν¨μλ₯Ό μ μν λ, λ©€λ² ν¨μλ‘ λ§λλ κ²μ΄ μ’μκΉ, λΉλ©€λ² ν¨μλ‘ μ 곡νλ κ²μ΄ λ μ’μκΉ? class WebBrowser { public: void clearCache(); void clearHist..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l8A6H/btrPybknQRf/xgwKuUnJoygCgKvl3zQ4q1/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 22 : λ°μ΄ν° λ©€λ²κ° μ μΈλ κ³³μ private μμμμ λͺ μ¬νμ ν΅μ¬ : 1. λ°μ΄ν° λ©€λ²λ private λ©€λ²λ‘ μ μΈνμ μ΄λ₯Ό ν΅ν΄ ν΄λμ€ μ μμλ λ¬Έλ²μ μΌλ‘ μΌκ΄μ± μλ λ°μ΄ν° μ κ·Ό ν΅λ‘λ₯Ό μ 곡ν μ μκ³ , νμμ λ°λΌμλ μΈλ°ν μ κ·Ό μ μ΄λ κ°λ₯νλ©°, ν΄λμ€μ λΆλ³μμ±μ κ°νν μ μμ λΏ μλλΌ, λ΄λΆ ꡬνμ μ΅ν΅μ±λ λ°νν μ μλ€. 2. protected λ public λ³΄λ€ λ λ§μ΄ '보νΈ' λ°κ³ μλ κ²μ΄ μ λλ‘ μλλ€. λ¨Όμ , λ°μ΄ν° λ©€λ²μ public λμ private μ μ¨μΌ νλ μ΄μ λ₯Ό μμ보μ. λ¬Έλ²μ μΌκ΄..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bo8aF9/btrPyz6gpiY/u3yEhYEfB6J3bcYt1vqHaK/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 21 : ν¨μμμ κ°μ²΄λ₯Ό λ°νν΄μΌ ν κ²½μ°μ μ°Έμ‘°μλ₯Ό λ°ννλ €κ³ λ€μ§ λ§μ ν΅μ¬ : 1. μ§μ μ€ν κ°μ²΄μ λν ν¬μΈν°λ μ°Έμ‘°μλ₯Ό λ°ννλ μΌ, νΉμ νμ ν λΉλ κ°μ²΄μ λν μ°Έμ‘°μλ₯Ό λ°ννλ μΌ, λλ μ§μ μ μ κ°μ²΄μ λν ν¬μΈν°λ μ°Έμ‘°μλ₯Ό λ°ννλ μΌμ κ·Έλ° κ°μ²΄κ° λ κ° μ΄μ νμν΄μ§ κ°λ₯μ±μ΄ μλ€λ©΄ μ λλ‘ νμ§ λ§μ(νλͺ© 4λ₯Ό 보면 λ¨μΌ μ€λ λ νκ²½μμμ μ μ ν μ½λ μμ λ₯Ό μ°Ύμ μ μλ€) μ 리μλ₯Ό νννλ ν΄λμ€μ κ³±μ operator λ₯Ό λ€μκ³Ό κ°μ΄ μ μνλ©΄, κ°κΈ° λ€λ₯Έ λ¬Έμ κ° λ°μνλ€! // 1. result κ°μ²΄λ₯Ό μμ±..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Mnq12/btrPycDBEjO/itqH6VoT4JK9ajaYS7POW1/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 20 : 'κ°μ μν μ λ¬' 보λ€λ 'μμκ°μ²΄ μ°Έμ‘°μμ μν μ λ¬' λ°©μμ ννλ νΈμ΄ λκ° λ«λ€ ν΅μ¬ : 1. 'κ°μ μν μ λ¬' 보λ€λ 'μμ κ°μ²΄ μ°Έμ‘°μμ μν μ λ¬' μ μ νΈνμ. λ체μ μΌλ‘ ν¨μ¨μ μΌ λΏλ§ μλλΌ λ³΅μ¬μμ€ λ¬Έμ κΉμ§ λ§μμ€λ€. 2. μ΄λ² νλͺ©μμ λ€λ£¬ λ²μΉμ κΈ°λ³Έμ 곡 νμ λ° STL λ°λ³΅μ, κ·Έλ¦¬κ³ ν¨μ κ°μ²΄ νμ μλ λ§μ§ μλλ€. μ΄λ€μ λν΄μλ 'κ°μ μν μ λ¬' μ΄ λ μ μ νλ€. κΈ°λ³Έμ μΌλ‘ C++ λ ν¨μλ‘λΆν° κ°μ²΄λ₯Ό μ λ¬λ°κ±°λ μ λ¬ν λ 'κ°μ μν μ λ¬(pass-by-value)' λ°©μμ μ¬μ©νλ€. μ΄λ¬ν..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/beefDH/btrPyK0KYkh/tBvfs2UK2GebXX415UrK11/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 19 : ν΄λμ€ μ€κ³λ νμ μ€κ³μ λκ°μ΄ μ·¨κΈνμ ν΅μ¬ : ν΄λμ€ μ€κ³λ νμ μ€κ³μ΄λ€. μλ‘μ΄ νμ μ μ μνκΈ° μ μ, μ΄λ² νλͺ©μ λμ¨ λͺ¨λ κ³ λ €μ¬νμ λΉ μ§μμ΄ μ κ²ν΄ 보μ! C++ μμ μλ‘μ΄ ν΄λμ€λ₯Ό μ μνλ€λ κ²μ μλ‘μ΄ νμ μ νλ μ μνλ κ²κ³Ό κ°λ€. λ°λΌμ λ€μκ³Ό κ°μ μμλ€μ μκ³ ν ν λ§λ€μ΄ 보μ! μλ‘ μ μν νμ μ κ°μ²΄ μμ± λ° μλ©Έμ μ΄λ»κ² μ΄λ£¨μ΄μ ΈμΌ νλκ°? (operator new, operator delete[] λ±λ±) κ°μ²΄ μ΄κΈ°νλ κ°μ²΄ λμ κ³Ό μ΄λ»κ² λ¬λΌμΌ νλκ°? μλ‘μ΄ νμ μΌλ‘ λ§λ κ°μ²΄κ° κ°μ μν΄..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lsA0L/btrPyLei9Mn/wcIz4lIm4rrPLHfBPNZWg0/img.jpg)
C++ νλ‘κ·Έλλ¨Έμ νλ μμ΄μ λ°μ΄λΈμΈ, μ€μ½§ λ§μ΄μ΄μ€μ Modern Effective C++ λ₯Ό μ½κ³ κΈ°μ΅ν λ΄μ©μ μμ½νκ³ μμ΅λλ€. κΌ μ½μ΄λ³΄μκΈΈ μΆμ²λ립λλ€! νλͺ© 18 : μΈν°νμ΄μ€ μ€κ³λ μ λλ‘ μ°κΈ°μ μ½κ², μν°λ¦¬λ‘ μ°κΈ°μ μ΄λ ΅κ² νμ ν΅μ¬ : 1. μ’μ μΈν°νμ΄μ€λ μ λλ‘ μ°κΈ°μ μ¬μ°λ©° μν°λ¦¬λ‘ μ°κΈ°μ μ΄λ ΅λ€. μΈν°νμ΄μ€λ₯Ό λ§λ€ λλ μ΄ νΉμ±μ μ§λ μ μλλ‘ κ³ λ―Όνκ³ λ κ³ λ―Όνμ 2. μΈν°νμ΄μ€μ μ¬λ°λ₯Έ μ¬μ©μ μ΄λλ λ°©λ²μΌλ‘λ μΈν°νμ΄μ€ μ¬μ΄μ μΌκ΄μ± μ‘μμ£ΌκΈ°, κ·Έλ¦¬κ³ κΈ°λ³Έμ 곡 νμ κ³Όμ λμ νΈνμ± μ μ§νκΈ°κ° μλ€. 3. μ¬μ©μμ μ€μλ₯Ό λ°©μ§νλ λ°©λ²μΌλ‘λ μλ‘μ΄ νμ λ§λ€κΈ°, νμ μ λν μ°μ°μ μ ννκΈ°, κ°μ²΄μ κ°μ λν΄ μ μ½ κ±ΈκΈ°, μμ κ΄λ¦¬ μμ μ μ¬μ©μ μ± μμΌλ‘ λμ§ μκΈ°κ° μ..