반응형
객체지향 설계의 원칙
SOLID 원칙
- S( Single Responsibility Principle ), 단일 책임 원칙 : 클래스는 한 가지 기능만을 수행해야 하며 한 가지 이유로만 변경
- O( Open/Closed Principle ), 개방 폐쇄 원칙 : 확장에는 열려 있고, 수정에는 닫혀 있어야 함
- L( Liskov Substitution Principle ), 리스코프 치환 원칙 : 자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 함
- I( Interface Segregation Principle ), 인터페이스 분리 원칙 : 하나의 거대한 인터페이스는 분리되어야 함
- D( Dependency Inversion Principle ), 의존성 역전 원칙 : 상위 모듈이 하위 모듈에 의존해서는 안됨
설계 원칙 자체보다는 언어 학습에 목적이 있어서 간단하게 스킵
탬플릿
함수 탬플릿 : 탬플릿인데 함수를 찍을 수 있는 탬플릿
/*arguemnt의 데이터 타입만 다를 뿐 같은 내용*/
void add(int x, int y);
void add(double x, double y);
void add(float x, float y);
template<typename T>
void add(T x, T y); //하나로 축소할 수 있다. 템플릿 함수
template<> //specialization : 해당 타입은 다르게 정의하겠다.
double add(double x, double y);
템플릿은 유용하지만, 데이터 타입을 고려할 필요가 있다.
오버로드된 함수가 있는 경우, 우선순위는 오버로드 함수가 높다. 명확(=사용자가 직접 타입 지정)할 수록 우선 순위가 높다.
클래스 탬플릿 : 클래스에서 사용하는 탬플릿
template<typename T1, typename T2>
class X{
public:
T1 t1;
T2 ts;
void operation(T1 a, T2 b);
};
탬플릿은 중복으로 사용하는 것이 가능하다.
클래스 탬플릿 프렌드 : 일반적인 프렌드 클래스 지정과 유사
반응형
'VEDA 복습' 카테고리의 다른 글
VEDA 14일차 - C++ (0) | 2025.04.03 |
---|---|
VEDA 13일차 - C++ (0) | 2025.04.02 |
VEDA 11일차 - C++ (0) | 2025.03.31 |
VEDA 10일차 - C++ (0) | 2025.03.28 |
VEDA 9일차 - C++ 프로그래밍 (0) | 2025.03.27 |