[Effective C++] 7. 템플릿과 일반화 프로그래밍 [2/4]
템플릿으로 만든 기본 클래스의 이름에 접근하는 방법과, 매개변수에 독립적인 코드를 분리해 코드 부풀림을 줄이는 방법을 정리했습니다.
템플릿으로 만든 기본 클래스의 이름에 접근하는 방법과, 매개변수에 독립적인 코드를 분리해 코드 부풀림을 줄이는 방법을 정리했습니다.
템플릿의 암시적 인터페이스와 컴파일 타임 다형성 개념, 그리고 typename이 갖는 두 가지 의미를 정리했습니다.
private 상속이 is-a가 아닌 구현 관계를 뜻한다는 점과, 다중 상속을 신중하게 써야 하는 이유를 정리했습니다.
세 점의 방향이 시계인지 반시계인지 외적으로 판별하는 CCW와, 이를 응용한 선분 교차 판정을 정리했습니다.
나눗셈의 나머지를 반복해 최대공약수를 구하는 유클리드 호제법의 원리와, 이를 이용한 최소공배수 계산을 정리했습니다.
상속받은 비가상 함수와 기본 매개변수 값을 재정의하면 안 되는 이유와, has-a 관계를 객체 합성으로 모형화하는 방법을 정리했습니다.
인터페이스 상속과 구현 상속의 차이를 구분하는 기준과, 가상 함수를 대신할 수 있는 설계 대안들을 정리했습니다.
public 상속이 is-a 관계를 뜻한다는 원칙과, 파생 클래스에서 상속된 이름이 가려지는 문제를 정리했습니다.
인라인 함수의 이점과 대가를 따져보고, 파일 사이의 컴파일 의존성을 줄이는 방법을 정리했습니다.
내부 객체의 핸들을 반환할 때 생기는 캡슐화 문제와, 예외 안전성을 확보하기 위한 보장 수준을 정리했습니다.