More actions
-- [kerokim] [[DateTime(2016-05-24T10:51:29)]] 이∼∼쉐리덜.. 씨..뽈뽈 배우려고,,온거야∼∼?!
쒸뽈뽈
회차 : 5회차 시간 : 18시 ~ 20시 장소 : 6층 학회실
참가원
| 멘토 | 장용운 | 출석 |
| 멘티 | 김민재 | ? |
| 김태헌 | ? | |
| 양덕 | ? | |
| 여영호 | ? | |
| 이정재 | ? | |
| 곽정흠 | ? | |
| 남헌 | ? |
스터디 진행
내용
상속 : 기존 클래스의 기능 확장(재활용) 생성자의 호출 순서 -> 상위 클래스의 생성자 -> 자식 클래스의 생성자 IS-A 관계 -> 상위 클래스의 포인터로 자식 클래스를 참조할 수 있음 다형성(polymorphism) : 상위 클래스의 포인터로 하위 클래스를 생성했을 때, 자식 클래스에서 오버라이딩 한 메소드를 호출할 수 있음 C++에서 다형성을 위해 virtual을 사용함
- 클래스 안에 virtual 선언된 멤버가 있는 경우 클래스 내부에 vtable을 만들어 함수 포인터를 저장함
RTTI(Run-Time Type Information) 부모 클래스 생성자 호출(디폴트 생성자를 호출하는 경우가 아니면) 클래스 생성자에 콜론을 이용해서 부모 클래스의 생성자를 초기화 할 수 있음 캐스팅: 상속 관계상에서 캐스팅을 하는 경우
- 서브 클래스로 캐스팅 : 캐스팅 연산자를 구현해야 함
- 부모 클래스로 캐스팅 : 부모 클래스에 해당하는 멤버 변수만 남음
static_cast -> 컴파일 타임에 캐스팅 dynamic_cast -> 런타임에 캐스팅 부모 클래스로 포인터 캐스팅 : 업 캐스팅 자식 클래스로 포인터 캐스팅 : 다운 캐스팅 abstract base class
- 메소드를 순수 가상 함수(pure virtual method) 형태로 선언
- 해당 클래스만으로는 클래스를 생성할 수 없음.
override 키워드 - 식별이 쉬움 부모 클래스에서 어떤 메소드를 오버로딩 형태로 구현했는데, 자식 클래스에서 오버로딩된 메소드 중 하나를 override 키워드로 선언할 경우, override 키워드 선언한 해당 메소드를 제외한 나머지 오버로딩된 메소드들은 가려져서 접근할 수 없게됨. 상속 방지 - 클래스 선언 시 final 키워드를 사용 override 방지 - 해당 메소드에 final 키워드 사용 클래스 접근 제어자(public, private, protected)
다음에 배울 내용
move symantics 연산자 오버로딩