특수화(specializtion) : C++ Template 특수화를 뜻하며, 이 특수화는 메타프로그래밍의 분기(if 문 같은 거)로 많이 쓰인다. 기본 템플릿(primary template) : 일반 C++ Template 을 뜻한다. 인스턴스화(instantiation) : 진짜로 깨어난 코드를 말한다. 컴파일러는 깨어난 코드만 문법 검사 등을 처리 한다. 평소의 템플릿 코드는 잠자는 코드이지만, 그 잠자는 코드를 그냥 사용 했을 때, 컴파일러는 템플릿 코드를 깨워주고, 문법 검사도 해준다. 즉, 인스턴스화는 "깨어난 코드" 로 봐도 무방하다. 블로브(blob) : 클래스가 멤버함수나 멤버 값들을 가지고 있을 때, 블로브 라고 한다. 메타 자료(metadata) : C++ Template 에서 매개변..
다형성 검색 결과
정말 제목이 .. 구체적이다. 이유 1. 다향성을 가진 기본 클래스는 파생클래스의 소멸자도 호출해줌으로써, 메모리릭, 신비한 현상 등을 막을수 있기 때문이다. 주의점 1. virtual 의 비용에 대해서 분명 알고 있어야 한다. 참조링크 : http://ikpil.tistory.com/380 2. 순수 가상 소멸자를 사용한다면, 정의를 꼭 써두어야 한다. 왜냐하면 http://www.kwak101.pe.kr/bbs/view.php?id=kwk_worksBBS&no=159 이기 때문이다. 참조 - 기본 클래스의 가상 소멸자로 인한 파생 클래스의 소멸 시점 1. 기본 클래스의 가상 소멸자 호출 2. 1번으로 부터 파생 클래스의 소멸자 호출 3. 2번으로 부터 기본 클래스의 소멸자 호출 - 순수 가상 소멸자의..
항목 3 : 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다. 개념정리 다형성 : 기본 클래스 객체의 포인터나 참조자를 통해서 파생 클래스 객체를 조작 하는 성질 public 상속의 쓰임 중 함수의 인자값이 기본클래스의 포인터나 레퍼런스일때 파생클래스도 받을수 있도록 해준다. 이유 1. 파생 클래스의 객체의 크기와 기본 클래스의 객체의 크기가 다르기 때문에, 포인터 계산(배열이니까!)시 오류가 발생한다! 해결방법 1. 배열의 포인터 계산과 다형성의 포인터 계산은 서로 다르다는 차이점을 숙지해라. 개인적인 생각 1. 이제부터 슬슬 기본 지식이 있어야지만 이해 할수 있는 수준이 나온다. 2. 이 차이점을 안다면, 코딩할 때 주의를 할수 있을것 같다.
최근댓글