Effective C++ 이펙티브 C++ 스콧 마이어스 저/곽용재 역 6. 상속, 그리고 객체 지향 설계 (3) 항목 38 : "has-a(...는...를 가짐)" 혹은 "is-implemented-in-terms-of(...는...를 써서 구현됨)"를 모형화할 때는 객체 합성을 사용하자 합성(Composition)이란, 어떤 타입의 객체들이 그와 다른 타입의 객체들을 포함하고 있을 경우에 성립하는 그 타입들 사이의 관계를 일컫습니다. 응용 영역 : 객체 중 우리 일상생활에서 볼 수 있는 사물을 본 뜬 것들. 구현 영역 : 응용 영역에 속하지 않는 것들. 시스템 구현만을 위한 인공물. 연결 리스트를 재사용하는 Set 템플릿 예 // list를 잘못 사용한 예(is-a) template class Set ..
Effective C++ 이펙티브 C++ 스콧 마이어스 저/곽용재 역 6. 상속, 그리고 객체 지향 설계 (2) 항목 35 : 가상 함수 대신 쓸 것들도 생각해 두는 자세를 시시때때로 길러 두자 가상 함수 대신 쓸 수 있는 매서드 패턴 네 가지를 알아보자. class GameCharacter { public: // 캐릭터의 체력치를 반환하는 함수. // 파생 클래스를 이 함수를 재정의할 수 있습니다. virtual int healthValue() const; }; 1. 비가상 인터페이스 관용구(NVI 관용구)를 통한 템플릿 메서드 패턴 공개되지 않은 가상 함수를 비가상 public 멤버 함수로 감써서 호출하는, 템플릿 메서드 패턴의 한 형태입니다. class GameCharacter { public: /..
Effective C++ 이펙티브 C++ 스콧 마이어스 저/곽용재 역 6. 상속, 그리고 객체 지향 설계 (1) 항목 32 : public 상속 모형은 반드시 "is-a(...는 ...의 일종이다)"를 따르도록 만들자 public 상속의 의미는 "is-a(...는 ...의 일종)"입니다. 기본 클래스에 적용되는 모든 것들이 파생 클래스에 그대로 적용되어야 합니다. 왜냐하면 모든 파생 클래스 객체는 기본 클래스 객체의 일종이기 때문입니다. 항목 33 : 상속된 이름을 숨기는 일은 피하자 1. 문제 class Base { private: int x; public: virtual void mf1() = 0; virtual void mf1(int); virtual void mf2(); void mf3(); vo..
- #cplusplus
- #마이클페더스
- #프로그래밍심리학
- #자녀교육
- #로버트마틴
- #build2016
- 책
- #uwp
- #csharp
- #클린코드
- #세미나
- #레거시코드
- #cpp
- #스콧마이어스
- #techdays2015
- #코드최적화
- Scott Meyers
- #scottmeyers
- Effective C++
- #EffectiveModernCpp
- #팀개발
- Effective Modern C++
- #mva
- #알고리즘
- #제럴드와인버그
- #임백준
- 상속
- #ndc
- #ModernCPP
- 객체 지향 설계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |