Notice
Recent Posts
Recent Comments
Link
관리 메뉴

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

KoreanFoodie's Study

Effective C++ | ν•­λͺ© 47 : νƒ€μž…μ— λŒ€ν•œ 정보가 ν•„μš”ν•˜λ‹€λ©΄ νŠΉμ„±μ •λ³΄ 클래슀λ₯Ό μ‚¬μš©ν•˜μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 47 : νƒ€μž…μ— λŒ€ν•œ 정보가 ν•„μš”ν•˜λ‹€λ©΄ νŠΉμ„±μ •λ³΄ 클래슀λ₯Ό μ‚¬μš©ν•˜μž 핡심 : 1. νŠΉμ„±μ •λ³΄ ν΄λž˜μŠ€λŠ” 컴파일 도쀑에 μ‚¬μš©ν•  수 μžˆλŠ” νƒ€μž… κ΄€λ ¨ 정보λ₯Ό λ§Œλ“€μ–΄λ‚Έλ‹€. λ˜ν•œ νŠΉμ„±μ •λ³΄ ν΄λž˜μŠ€λŠ” ν…œν”Œλ¦Ώ 및 ν…œν”Œλ¦Ώ 특수 버전을 μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•œλ‹€. 2. ν•¨μˆ˜ μ˜€λ²„λ‘œλ”© 기법과 κ²°ν•©ν•˜μ—¬ νŠΉμ„±μ •λ³΄ 클래슀λ₯Ό μ‚¬μš©ν•˜λ©΄, 컴파일 νƒ€μž„μ— κ²°μ •λ˜λŠ” νƒ€μž…λ³„ if...else 점검문을 ꡬ사할 수 μžˆλ‹€. STL μ—λŠ” container, iterator, algorithm 말고도 utility 라고 λΆˆλ¦¬λŠ” ν…œν”Œλ¦Ώλ„ λͺ‡ 개 λ“€μ–΄ μžˆλ‹€. 이듀 쀑 advance λΌλŠ”, μ§€μ •λœ ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:33
Effective C++ | ν•­λͺ© 46 : νƒ€μž… λ³€ν™˜μ΄ λ°”λžŒμ§ν•  κ²½μš°μ—λŠ” 비멀버 ν•¨μˆ˜λ₯Ό 클래슀 ν…œν”Œλ¦Ώ μ•ˆμ— μ •μ˜ν•΄ λ‘μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 46 : νƒ€μž… λ³€ν™˜μ΄ λ°”λžŒμ§ν•  κ²½μš°μ—λŠ” 비멀버 ν•¨μˆ˜λ₯Ό 클래슀 ν…œν”Œλ¦Ώ μ•ˆμ— μ •μ˜ν•΄ λ‘μž 핡심 : λͺ¨λ“  λ§€κ°œλ³€μˆ˜μ— λŒ€ν•΄ μ•”μ‹œμ  νƒ€μž… λ³€ν™˜μ„ μ§€μ›ν•˜λŠ” ν…œν”Œλ¦Ώκ³Ό 관계가 μžˆλŠ” ν•¨μˆ˜λ₯Ό μ œκ³΅ν•˜λŠ” 클래슀 ν…œν”Œλ¦Ώμ„ λ§Œλ“€λ €κ³  ν•œλ‹€λ©΄, 이런 ν•¨μˆ˜λŠ” 클래슀 ν…œν”Œλ¦Ώ μ•ˆμ— ν”„λ Œλ“œ ν•¨μˆ˜λ‘œμ„œ μ •μ˜ν•œλ‹€ λ‹€μŒκ³Ό 같은 유리수 계산 ν΄λž˜μŠ€κ°€ μžˆλ‹€κ³  ν•΄ 보자. template class Rational { public: Rational(const T& numerator = 0, const T& denominator = 1); const T numerator() const;..

Tutorials/C++ : Advanced 2022. 10. 25. 16:32
Effective C++ | ν•­λͺ© 45 : "ν˜Έν™˜λ˜λŠ” λͺ¨λ“  νƒ€μž…"을 λ°›μ•„λ“€μ΄λŠ” λ°λŠ” 멀버 ν•¨μˆ˜ ν…œν”Œλ¦Ώμ΄ 직방!

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 45 : "ν˜Έν™˜λ˜λŠ” λͺ¨λ“  νƒ€μž…"을 λ°›μ•„λ“€μ΄λŠ” λ°λŠ” 멀버 ν•¨μˆ˜ ν…œν”Œλ¦Ώμ΄ 직방! 핡심 : 1. ν˜Έν™˜λ˜λŠ” λͺ¨λ“  νƒ€μž…μ„ λ°›μ•„λ“€μ΄λŠ” 멀버 ν•¨μˆ˜λ₯Ό λ§Œλ“€λ €λ©΄ 멀버 ν•¨μˆ˜ ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•œλ‹€. 2. μΌλ°˜ν™”λœ 볡사 생성 μ—°μ‚°κ³Ό μΌλ°˜ν™”λœ λŒ€μž… 연산을 μœ„ν•΄ 멀버 ν…œν”Œλ¦Ώμ„ μ„ μ–Έν–ˆλ‹€ ν•˜λ”λΌλ„, λ³΄ν†΅μ˜ 볡사 μƒμ„±μžμ™€ 볡사 λŒ€μž… μ—°μ‚°μžλŠ” μ—¬μ „νžˆ 직접 μ„ μ–Έν•΄μ•Ό ν•œλ‹€. ν¬μΈν„°λŠ” λ‹€μŒκ³Ό 같은 μ•”μ‹œμ  λ³€ν™˜μ„ μ§€μ›ν•œλ‹€. class Base {}; class Derived: public Base {}; Base *pt1 = new Derived; ν•˜μ§€λ§Œ ν…œν”Œλ¦Ώμ„ μ΄μš©ν•΄μ„œ λ§Œλ“œ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:32
Effective C++ | ν•­λͺ© 44 : λ§€κ°œλ³€μˆ˜μ— 독립적인 μ½”λ“œλŠ” ν…œν”Œλ¦ΏμœΌλ‘œλΆ€ν„° λΆ„λ¦¬μ‹œν‚€μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 44 : λ§€κ°œλ³€μˆ˜μ— 독립적인 μ½”λ“œλŠ” ν…œν”Œλ¦ΏμœΌλ‘œλΆ€ν„° λΆ„λ¦¬μ‹œν‚€μž 핡심 : 1. ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜λ©΄ λΉ„μŠ·λΉ„μŠ·ν•œ ν΄λž˜μŠ€μ™€ ν•¨μˆ˜κ°€ μ—¬λŸ¬ 벌 λ§Œλ“€μ–΄μ§„λ‹€. λ”°λΌμ„œ ν…œν”Œλ¦Ώ λ§€κ°œλ³€μˆ˜μ— μ’…μ†λ˜μ§€ μ•Šμ€ ν…œν”Œλ¦Ώ μ½”λ“œλŠ” λΉ„λŒ€ν™”μ˜ 원인이 λœλ‹€. 2. λΉ„νƒ€μž… ν…œν”Œλ¦Ώ λ§€κ°œλ³€μˆ˜λ‘œ μƒκΈ°λŠ” μ½”λ“œ λΉ„λŒ€ν™”μ˜ 경우, ν…œν”Œλ¦Ώ λ§€κ°œλ³€μˆ˜λ₯Ό ν•¨μˆ˜ λ§€κ°œλ³€μˆ˜ ν˜Ήμ€ 클래슀 데이터 λ©€λ²„λ‘œ λŒ€μ²΄ν•¨μœΌλ‘œμ¨ λΉ„λŒ€ν™” μ’…μ’… 없앨 수 μžˆλ‹€. 3. νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ μƒκΈ°λŠ” μ½”λ“œ λΉ„λŒ€ν™”μ˜ 경우, λ™μΌν•œ 이진 ν‘œν˜„κ΅¬μ‘°λ₯Ό 가지고 μΈμŠ€ν„΄μŠ€ν™”λ˜λŠ” νƒ€μž…λ“€μ΄ ν•œ 가지 ν•¨μˆ˜ κ΅¬ν˜„μ„ κ³΅μœ ν•˜κ²Œ λ§Œλ“¦μœΌλ‘œμ¨ λΉ„λŒ€ν™”λ₯Ό κ°μ†Œμ‹œν‚¬ ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:31
Effective C++ | ν•­λͺ© 43 : ν…œν”Œλ¦ΏμœΌλ‘œ λ§Œλ“€μ–΄μ§„ κΈ°λ³Έ 클래슀 μ•ˆμ˜ 이름에 μ ‘κ·Όν•˜λŠ” 방법을 μ•Œμ•„ λ‘μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 43 : ν…œν”Œλ¦ΏμœΌλ‘œ λ§Œλ“€μ–΄μ§„ κΈ°λ³Έ 클래슀 μ•ˆμ˜ 이름에 μ ‘κ·Όν•˜λŠ” 방법을 μ•Œμ•„ λ‘μž 핡심 : νŒŒμƒ 클래슀 ν…œν”Œλ¦Ώμ—μ„œ κΈ°λ³Έ 클래슀 ν…œν”Œλ¦Ώμ˜ 이름을 μ°Έμ‘°ν•  λ•ŒλŠ”, "this->" λ₯Ό μ ‘λ‘μ‚¬λ‘œ λΆ™μ΄κ±°λ‚˜ κΈ°λ³Έ 클래슀 ν•œμ •λ¬Έμ„ λͺ…μ‹œμ μœΌλ‘œ 써 μ£ΌλŠ” κ²ƒμœΌλ‘œ ν•΄κ²°ν•˜μž ν…œν”Œλ¦Ώ 클래슀 μƒμ†ν•˜λŠ” λ‹€μŒ 예제 μ½”λ“œλ₯Ό 보자. class CompanyA { public: void sendCleartext(const std::string& msg); void sendEncrypted(const std::string& msg); }; // CompanyB, Compan..

Tutorials/C++ : Advanced 2022. 10. 25. 16:31
Effective C++ | ν•­λͺ© 42 : typename 의 두 가지 의미λ₯Ό μ œλŒ€λ‘œ νŒŒμ•…ν•˜μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 42 : typename 의 두 가지 의미λ₯Ό μ œλŒ€λ‘œ νŒŒμ•…ν•˜μž 핡심 : 1. ν…œν”Œλ¦Ώ λ§€κ°œλ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ, class 및 typename 은 μ„œλ‘œ λ°”κΎΈμ–΄ 써도 λ¬΄λ°©ν•˜λ‹€. 2. 쀑첩 의쑴 νƒ€μž… 이름을 μ‹λ³„ν•˜λŠ” μš©λ„μ—λŠ” λ°˜λ“œμ‹œ typename 을 μ‚¬μš©ν•œλ‹€. 단, 쀑첩 의쑴 이름이 κΈ°λ³Έ 클래슀 λ¦¬μŠ€νŠΈμ— μžˆκ±°λ‚˜ 멀버 μ΄ˆκΈ°ν™” 리슀트 λ‚΄μ˜ κΈ°λ³Έ 클래슀 μ‹λ³„μžλ‘œ μžˆλŠ” κ²½μš°μ—λŠ” μ˜ˆμ™Έμ΄λ‹€. 질문 : μ•„λž˜μ˜ 두 ν…œν”Œλ¦Ώ 선언문에 쓰인 class 와 typename 의 μ°¨μ΄λŠ” λ¬΄μ—‡μΌκΉŒ? template class Widget; template class Wi..

Tutorials/C++ : Advanced 2022. 10. 25. 16:30
Effective C++ | ν•­λͺ© 41 : ν…œν”Œλ¦Ώ ν”„λ‘œκ·Έλž˜λ°μ˜ μ²œλ¦ΏκΈΈλ„ μ•”μ‹œμ  μΈν„°νŽ˜μ΄μŠ€μ™€ 컴파일 νƒ€μž„ λ‹€ν˜•μ„±λΆ€ν„°

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 41 : ν…œν”Œλ¦Ώ ν”„λ‘œκ·Έλž˜λ°μ˜ μ²œλ¦ΏκΈΈλ„ μ•”μ‹œμ  μΈν„°νŽ˜μ΄μŠ€μ™€ 컴파일 νƒ€μž„ λ‹€ν˜•μ„±λΆ€ν„° 핡심 : 1. 클래슀 및 ν…œν”Œλ¦Ώμ€ λͺ¨λ‘ μΈν„°νŽ˜μ΄μŠ€μ™€ λ‹€ν˜•μ„±μ„ μ§€μ›ν•œλ‹€. 2. 클래슀의 경우, μΈν„°νŽ˜μ΄μŠ€λŠ” λͺ…μ‹œμ μ΄λ©° ν•¨μˆ˜μ˜ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό μ€‘μ‹¬μœΌλ‘œ κ΅¬μ„±λ˜μ–΄μžˆλ‹€. λ‹€ν˜•μ„±μ€ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 가상 ν•¨μˆ˜λ₯Ό 톡해 λ‚˜νƒ€λ‚œλ‹€. 3. ν…œν”Œλ¦Ώ λ§€κ°œλ³€μˆ˜μ˜ 경우, μΈν„°νŽ˜μ΄μŠ€λŠ” μ•”μ‹œμ μ΄λ©° 유효 ν‘œν˜„μ‹μ— κΈ°λ°˜μ„ 두어 κ΅¬μ„±λœλ‹€. λ‹€ν˜•μ„±μ€ 컴파일 쀑에 ν…œν”Œλ¦Ώ μΈμŠ€ν„΄μŠ€ν™”μ™€ ν•¨μˆ˜ μ˜€λ²„λ‘œλ”© λͺ¨ν˜Έμ„± 해결을 톡해 λ‚˜νƒ€λ‚œλ‹€. 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 세계λ₯Ό νšŒμ „μ‹œν‚€λŠ” 좕은 λͺ…μ‹œμ  μΈν„°νŽ˜μ΄μŠ€(ex..

Tutorials/C++ : Advanced 2022. 10. 25. 16:30
Effective C++ | ν•­λͺ© 40 : 닀쀑 상속은 μ‹¬μ‚¬μˆ™κ³ ν•΄μ„œ μ‚¬μš©ν•˜μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 40 : 닀쀑 상속은 μ‹¬μ‚¬μˆ™κ³ ν•΄μ„œ μ‚¬μš©ν•˜μž 핡심 : 1. 닀쀑 상속은 단일 상속보닀 λ³΅μž‘ν•˜λ‹€. μƒˆλ‘œμš΄ λͺ¨ν˜Έμ„± 문제λ₯Ό μΌμœΌν‚¬ 뿐 μ•„λ‹ˆλΌ 가상 상속이 ν•„μš”ν•΄μ§ˆ μˆ˜λ„ μžˆλ‹€. 2. 가상 상속을 μ“°λ©΄ 크기 λΉ„μš©, 속도 λΉ„μš©μ΄ λŠ˜μ–΄λ‚˜λ©° μ΄ˆκΈ°ν™” 및 λŒ€μž… μ—°μ‚°μ˜ λ³΅μž‘λ„κ°€ 컀진닀. λ”°λΌμ„œ 가상 κΈ°λ³Έ ν΄λž˜μŠ€μ—λŠ” 데이터λ₯Ό 두지 μ•ŠλŠ” 것이 ν˜„μ‹€μ μœΌλ‘œ κ°€μž₯ μ‹€μš©μ μ΄λ‹€. 3. 닀쀑 상속을 μ λ²•ν•˜κ²Œ μ“Έ 수 μžˆλŠ” κ²½μš°κ°€ μžˆλ‹€. μ—¬λŸ¬ μ‹œλ‚˜λ¦¬μ˜€ 쀑 ν•˜λ‚˜λŠ”, μΈν„°νŽ˜μ΄μŠ€ ν΄λž˜μŠ€λ‘œλΆ€ν„° public 상속을 μ‹œν‚΄κ³Ό λ™μ‹œμ— κ΅¬ν˜„μ„ λ•λŠ” ν΄λž˜μŠ€λ‘œλΆ€ν„° private 상속을 μ‹œν‚€λŠ” ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:30
Effective C++ | ν•­λͺ© 39 : private 상속은 μ‹¬μ‚¬μˆ™κ³ ν•΄μ„œ κ΅¬μ‚¬ν•˜μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 39 : private 상속은 μ‹¬μ‚¬μˆ™κ³ ν•΄μ„œ κ΅¬μ‚¬ν•˜μž 핡심 : 1. private μƒμ†μ˜ μ˜λ―ΈλŠ” is-implmented-in-terms-of(...λŠ” ...λ₯Ό μ¨μ„œ κ΅¬ν˜„λ¨) 이닀. λŒ€κ°œ 객체 ν•©μ„±κ³Ό λΉ„κ΅ν•΄μ„œ μ“°μ΄λŠ” λΆ„μ•Όκ°€ λ§Žμ§€λŠ” μ•Šμ§€λ§Œ, νŒŒμƒ 클래슀 μͺ½μ—μ„œ κΈ°λ³Έ 클래슀의 protected 멀버에 μ ‘κ·Όν•΄μ•Ό ν•  경우 ν˜Ήμ€ 상속받은 가상 ν•¨μˆ˜λ₯Ό μž¬μ •μ˜ν•΄μ•Ό ν•  κ²½μš°μ—λŠ” private 상속이 λ‚˜λ¦„λŒ€λ‘œ μ˜λ―Έκ°€ μžˆλ‹€. 2. 객체 ν•©μ„±κ³Ό 달리, private 상속은 곡백 κΈ°λ³Έ 클래슀 μ΅œμ ν™”(EBO) λ₯Ό ν™œμ„±ν™”μ‹œν‚¬μˆ˜ μžˆλ‹€. μ΄λŠ” 객체 크기λ₯Ό 가지고 κ³ ..

Tutorials/C++ : Advanced 2022. 10. 25. 16:29
Effective C++ | ν•­λͺ© 38 : "has-a(...λŠ”...λ₯Ό 가짐)" ν˜Ήμ€ "is-implemented-in-terms-of(...λŠ”...λ₯Ό μ¨μ„œ κ΅¬ν˜„λ¨)"λ₯Ό λͺ¨ν˜•ν™”ν•  λ•ŒλŠ” 객체 합성을 μ‚¬μš©ν•˜μž

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 38 : "has-a(...λŠ”...λ₯Ό 가짐)" ν˜Ήμ€ "is-implemented-in-terms-of(...λŠ”...λ₯Ό μ¨μ„œ κ΅¬ν˜„λ¨)"λ₯Ό λͺ¨ν˜•ν™”ν•  λ•ŒλŠ” 객체 합성을 μ‚¬μš©ν•˜μž 핡심 : 1. 객체 함성(composition)의 μ˜λ―ΈλŠ” public 상속이 가진 μ˜λ―Έμ™€ μ™„μ „νžˆ λ‹€λ₯΄λ‹€. 2. μ‘μš© μ˜μ—­μ—μ„œ 객체 ν•©μ„±μ˜ μ˜λ―ΈλŠ” has-a(...λŠ”...λ₯Ό 가짐)이닀. κ΅¬ν˜„ μ˜μ—­μ—μ„œλŠ” is-implemented-in-terms-of(...λŠ” ...λ₯Ό μ¨μ„œ κ΅¬ν˜„λ¨)의 의미λ₯Ό κ°–λŠ”λ‹€. ν•©μ„±(composition) μ΄λž€, μ–΄λ–€ νƒ€μž…μ˜ 객체듀이 그와 λ‹€λ₯Έ 타..

Tutorials/C++ : Advanced 2022. 10. 25. 16:29