Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

CppALL/쒸뽈뽈/0524

From ZeroWiki
Revision as of 10:51, 24 May 2016 by imported>kerokim ({CREATE})
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

-- [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 연산자 오버로딩

잡담


활동지도/2016 CppALL/쒸뽈뽈