일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 언리얼
- effective stl
- 스마트 포인터
- Effective c++
- 반복자
- 예외
- Smart Pointer
- 함수 객체
- 상속
- virtual function
- lua
- 다형성
- 메타테이블
- 암시적 변환
- c++
- 게임
- 영화
- 오블완
- exception
- more effective c++
- 비교 함수 객체
- 영화 리뷰
- resource management class
- 참조자
- UE4
- operator new
- 티스토리챌린지
- reference
- implicit conversion
- 루아
- Today
- Total
목록multiple inheritance (2)
스토리텔링 개발자
항목 24. 가상 함수, 다중 상속, 가상 기본 클래스, RTTI에 들어가는 비용을 제대로 파악하자 가상 함수C++ 언어는 어떻게 구현되었느냐에 따라 객체의 크기와 멤버 함수의 속도가 현저히 변한다.그 중 가장 큰 영향을 끼친다고 볼 수 있는 것이 바로 가상 함수이다.가상 함수는 가상 테이블(vtbl, virtual table) 및 가상 테이블 포인터(vptr, virtual table pointer)로 구현한다.그리고 이 두 가지가 성능에 가장 큰 쟁점이 된다. 가상 테이블(vtbl, virtual table)가상 함수를 포함하는 클래스가 가지는 함수 포인터의 배열을 말한다.가상 함수를 선언 혹은 상속받은 클래스(클래스 인스턴스가 아님!)에 반드시 생긴다.가상 테이블은 해당 클래스의 가상 함수 함..
항목 40 : 다중 상속은 심사숙고해서 사용하자 다중 상속(multiple inheritance : MI)의 문제둘 이상의 기본 클래스로부터 똑같은 이름을 물려받을 가능성이 생긴다.class BorrowableItem{public: void checkOut(); ...};class ElectronicGadget{private: bool checkOut() const; ...};// 이런 다중 상속의 경우 어떻게 될 것인가?class MP3Player : public BorrowableItem, public ElectronicGadget{ ... };MP3Player mp;mp.checkOut(); // 모호성 발생!위에서 확인할 수 있듯, 파생 클래..