{

동적인 다형성 : Polymorphism 은 무엇인가?
 클래스의 상속을 통해서 하나의 타입에 서로 다른 타입을 넣어 서로 다른 타입처럼 인식되는 것을 뜻한다.

정적인 다형성 : Polymorphism 은 무엇인가?
 정적인 다형성은 타입의 이름은 같지만 옵션( < > 같은것)을 주어 같은 이름이지만 옵션에 따라 다른 타입으로 인식되는 것을 뜻한다.

두개 다 다형성인데 무엇이 다른가?
 동적 다형성은 런타임에 인식되는 것이고, 정적 다형성은 컴파일 타임에 이루어 지는 것이다. 그러므로 용도가 다르다.

동적 다형성의 용도는 무엇인가?
 런타임에 행동을 바꿀 수 있다. 대신 정적 다형성 보다 느리다.

정적 다형성의 용도는 무엇인가?
 컴파일 타임에 흐름을 같으나 행동이 행동을 바꿀 수 있다. 대신 동적 다형성 보다 빠르다.

빠르고 느리고의 차이는 어느 정도 인가?
 가상 함수 호출에 들어가는 시간의 차이만 있다.

어느것을 더 사용하는가?
 동적 다형성을 더 많이 사용 하는데, 시간이 흐르면 정적 다형성도 동적만큼이나 사용 될 것으로 생각 된다.(템플릿을 알아야 되기 떄문에 ...)

이 처럼 정적과 동적 다형성은 서로의 단점을 서로의 장점으로 보완되기 때문에, 같이 사용하는게 제일 좋다고 생각 한다. 그러므로 이번 항목에서 말하는 혼합을 해야 하는 이유에 대해서 충분히 정리했으니 이만 끝낸다.

}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 78 : C++ API가 아닌 다른 것들과의 데이터 교환을 위해서는 vector(그리고 string::c_str)를 활용하라. ( Use vector (and string::c_str) to exchange data with non-C++ APIs. )  (0) 2009.04.12
항목 77 : 배열 대신 vector와 string을 사용 하라. ( Use vector and string instead of arrays. )  (0) 2009.04.12
항목 76 : 표준적으로 vector를 사용하고, 그렇지 않다면 적절한 컨테이너를 선택하라. ( Use vector by default. Otherwise, choose an appropriate container. )  (0) 2009.04.12
항목 67 : 계획적이지 않고 일반적이지 않은 코드는 작성하지 말라. ( Don’t write unintentionally nongeneric code. )  (0) 2009.04.12
항목 66 : 함수 템플릿은 특화해서는 안된다. ( Don’t specialize function templates. )  (0) 2009.04.12
항목 63 : 모듈의 인터페이스 내에는 충분한 이식성을 갖춘 타입을 사용하라. ( Use sufficiently portable types in a module’s interface. )  (0) 2009.04.11
항목 62 : 예외가 모듈의 경계를 넘어 전달되는 것을 막아라. ( Don’t allow exceptions to propagate across module boundaries. )  (0) 2009.04.11
항목 61 : 헤더 파일 내에는 서로 연결된 엔티티를 정의해서는 안된다. ( Don’t define entities with linkage in a header file. )  (0) 2009.04.11
항목 60 : 서로 다른 모듈에서의 메모리 할당과 해지는 피하라. ( Avoid allocating and deallocating memory in different modules. )  (0) 2009.04.11
항목 59 : 헤더 파일 내에 또는 #include 앞에 네임스페이스 using을 써서는 안 된다. ( Don’t write namespace usings in a header file or before an #include. )  (0) 2009.04.08
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기