본문 바로가기

VEDA 복습

VEDA 12일차 - C++

반응형

 

객체지향 설계의 원칙

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