SlideShare a Scribd company logo
1 of 35
작성자  :  윤현성
객체 포인터 Step 01 Step 02 Step 03 상속과 다형성 용어 정리
[object Object],[object Object],[object Object],Person * ptr = new Person(); ◆  만약  student class  가  Person class  를 상속 받을 때 Person * ptr = new Student(); 가능 !!
 
 
◆  컴퓨터는 실제 가리키고 있는 객체가 어떤 타입인지 신경 쓰지 않는다 . 실제 대입되는 클래스도 가리키는 포인터의 타입으로 인식한다 . 즉 ,  가리키고 있는 포인터의 타입의 형태로 인식한다 . *  상속 관계에서 상위 클래스가 하위 클래스를 가리키는 경우는  100%  가능 Why?  상위 클래스에 있는 모든 변수와 함수를 상속받으니까 !
▪  Employee Class
▪  PermanentWorker Class
▪  EmployeeHandler Class 주석을 풀면 어떻게 될까 ?
▪  main
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
만약 부모의 맴버 함수가 여러 개로 오버로딩 되어 있을 때 자식 클래스에서 한가지를 오버 라이드 한다면 부모의 다른 오버로딩 된 함수는 상속되지 않는다 .
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
▪  다운 캐스팅과 업 캐스팅 도형 원 사각형 삼각형 다운 캐스팅 업 캐스팅
도형 원 사각형 삼각형 ♦  각각의 클래스에 맞게 그려주고 싶다 !!
 
 
 
 
 
[object Object],[object Object],[object Object],[object Object]
아주 나쁜 방법이다 . 그럼 어떻게 ? ->  가상 함수를 사용 !
♦  이 가상함수를 오버라이드 한 함수에는  virtual  을 안 붙여도 가상 함수가 된다 .
▪  Draw()  에  virtual  을 붙여서 가상함수로 만들었더니 각 클래스에 맞는 Draw()  함수가 호출되었다 . ▪  그러나 소멸자는 그대로다 .
 
 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
♦  추상 클래스는 인스턴스화가 불가능 하다 .
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],void Runc(Shape* pc) { pc->Draw(); } < 동적 바인딩 > Circle c; c.Draw(); < 정적 바인딩 >
감사합니다 .

More Related Content

What's hot

More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2현찬 양
 
자바스크립트 제대로 알고쓰기
자바스크립트 제대로 알고쓰기자바스크립트 제대로 알고쓰기
자바스크립트 제대로 알고쓰기Min Park
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements민태 김
 
Effective c++ 1,2
Effective c++ 1,2Effective c++ 1,2
Effective c++ 1,2세빈 정
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object민태 김
 
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6민태 김
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2현찬 양
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1민태 김
 
M1 2 1
M1 2 1M1 2 1
M1 2 1nexthw
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1현찬 양
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5민태 김
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리Injae Lee
 
Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬Dong Chan Shin
 
Effective c++ 3
Effective c++ 3Effective c++ 3
Effective c++ 3현찬 양
 
Scala block expression
Scala block expressionScala block expression
Scala block expressionYong Joon Moon
 
[Swift] Optional
[Swift] Optional[Swift] Optional
[Swift] OptionalBill Kim
 
Scala self type inheritance
Scala self type inheritanceScala self type inheritance
Scala self type inheritanceYong Joon Moon
 

What's hot (20)

More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
 
자바스크립트 제대로 알고쓰기
자바스크립트 제대로 알고쓰기자바스크립트 제대로 알고쓰기
자바스크립트 제대로 알고쓰기
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements
 
Effective c++ 1,2
Effective c++ 1,2Effective c++ 1,2
Effective c++ 1,2
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object
 
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1
 
M1 2 1
M1 2 1M1 2 1
M1 2 1
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
 
Scala implicit
Scala implicitScala implicit
Scala implicit
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
 
Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter5 6_ 131039 신동찬
 
Effective c++ 3
Effective c++ 3Effective c++ 3
Effective c++ 3
 
Scala block expression
Scala block expressionScala block expression
Scala block expression
 
[Swift] Optional
[Swift] Optional[Swift] Optional
[Swift] Optional
 
Scala self type inheritance
Scala self type inheritanceScala self type inheritance
Scala self type inheritance
 
Scala variable
Scala variableScala variable
Scala variable
 

Viewers also liked

Transformation - presented by Mark Donovan at the Lean Enterprise Institute
Transformation - presented by Mark Donovan at the Lean Enterprise InstituteTransformation - presented by Mark Donovan at the Lean Enterprise Institute
Transformation - presented by Mark Donovan at the Lean Enterprise Institutemarkpatrickdonovan
 
MVVM for the Web
MVVM for the WebMVVM for the Web
MVVM for the WebExcella
 
EA Culture in Government of Canada
EA Culture in Government of CanadaEA Culture in Government of Canada
EA Culture in Government of CanadaConexiam
 
Lean Enterprise Architecture
Lean Enterprise ArchitectureLean Enterprise Architecture
Lean Enterprise ArchitectureExcella
 

Viewers also liked (6)

Transformation - presented by Mark Donovan at the Lean Enterprise Institute
Transformation - presented by Mark Donovan at the Lean Enterprise InstituteTransformation - presented by Mark Donovan at the Lean Enterprise Institute
Transformation - presented by Mark Donovan at the Lean Enterprise Institute
 
MVVM for the Web
MVVM for the WebMVVM for the Web
MVVM for the Web
 
EA Culture in Government of Canada
EA Culture in Government of CanadaEA Culture in Government of Canada
EA Culture in Government of Canada
 
Bizbok dupont canvas
Bizbok dupont canvasBizbok dupont canvas
Bizbok dupont canvas
 
Lean Enterprise Architecture
Lean Enterprise ArchitectureLean Enterprise Architecture
Lean Enterprise Architecture
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 

Similar to Chapter8 상속과다형성(윤현성)

이펙티브 C++ 스터디
이펙티브 C++ 스터디이펙티브 C++ 스터디
이펙티브 C++ 스터디quxn6
 
이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디quxn6
 
모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6quxn6
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)용호 최
 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summarySehyeon Nam
 
Chapter5 ~ 6
Chapter5 ~ 6Chapter5 ~ 6
Chapter5 ~ 6Injae Lee
 
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++Min-soo Park
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java유리 하
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본용호 최
 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4성연 김
 
More effective c++ Chap1~2
More effective c++ Chap1~2More effective c++ Chap1~2
More effective c++ Chap1~2Injae Lee
 
이펙티브 C++ 공부
이펙티브 C++ 공부이펙티브 C++ 공부
이펙티브 C++ 공부quxn6
 
M5 6 1
M5 6 1M5 6 1
M5 6 1nexthw
 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2문익 장
 
[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어NAVER D2
 
The C++ Programming Language 5장 포인터, 배열, 구조체
The C++ Programming Language 5장 포인터, 배열, 구조체The C++ Programming Language 5장 포인터, 배열, 구조체
The C++ Programming Language 5장 포인터, 배열, 구조체해강
 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4Dong Chan Shin
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2성연 김
 
Effective c++ Chapter6
Effective c++ Chapter6Effective c++ Chapter6
Effective c++ Chapter6세빈 정
 
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1Keunhyun Oh
 

Similar to Chapter8 상속과다형성(윤현성) (20)

이펙티브 C++ 스터디
이펙티브 C++ 스터디이펙티브 C++ 스터디
이펙티브 C++ 스터디
 
이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디
 
모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)
 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
 
Chapter5 ~ 6
Chapter5 ~ 6Chapter5 ~ 6
Chapter5 ~ 6
 
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본
 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
 
More effective c++ Chap1~2
More effective c++ Chap1~2More effective c++ Chap1~2
More effective c++ Chap1~2
 
이펙티브 C++ 공부
이펙티브 C++ 공부이펙티브 C++ 공부
이펙티브 C++ 공부
 
M5 6 1
M5 6 1M5 6 1
M5 6 1
 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
 
[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어
 
The C++ Programming Language 5장 포인터, 배열, 구조체
The C++ Programming Language 5장 포인터, 배열, 구조체The C++ Programming Language 5장 포인터, 배열, 구조체
The C++ Programming Language 5장 포인터, 배열, 구조체
 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
 
Effective c++ Chapter6
Effective c++ Chapter6Effective c++ Chapter6
Effective c++ Chapter6
 
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1
 

Chapter8 상속과다형성(윤현성)

  • 1. 작성자 : 윤현성
  • 2. 객체 포인터 Step 01 Step 02 Step 03 상속과 다형성 용어 정리
  • 3.
  • 4.  
  • 5.  
  • 6. ◆ 컴퓨터는 실제 가리키고 있는 객체가 어떤 타입인지 신경 쓰지 않는다 . 실제 대입되는 클래스도 가리키는 포인터의 타입으로 인식한다 . 즉 , 가리키고 있는 포인터의 타입의 형태로 인식한다 . * 상속 관계에서 상위 클래스가 하위 클래스를 가리키는 경우는 100% 가능 Why? 상위 클래스에 있는 모든 변수와 함수를 상속받으니까 !
  • 7. ▪ Employee Class
  • 9. ▪ EmployeeHandler Class 주석을 풀면 어떻게 될까 ?
  • 11.
  • 12.  
  • 13. 만약 부모의 맴버 함수가 여러 개로 오버로딩 되어 있을 때 자식 클래스에서 한가지를 오버 라이드 한다면 부모의 다른 오버로딩 된 함수는 상속되지 않는다 .
  • 14.
  • 15. ▪ 다운 캐스팅과 업 캐스팅 도형 원 사각형 삼각형 다운 캐스팅 업 캐스팅
  • 16. 도형 원 사각형 삼각형 ♦ 각각의 클래스에 맞게 그려주고 싶다 !!
  • 17.  
  • 18.  
  • 19.  
  • 20.  
  • 21.  
  • 22.
  • 23. 아주 나쁜 방법이다 . 그럼 어떻게 ? -> 가상 함수를 사용 !
  • 24. ♦ 이 가상함수를 오버라이드 한 함수에는 virtual 을 안 붙여도 가상 함수가 된다 .
  • 25. ▪ Draw() 에 virtual 을 붙여서 가상함수로 만들었더니 각 클래스에 맞는 Draw() 함수가 호출되었다 . ▪ 그러나 소멸자는 그대로다 .
  • 26.  
  • 27.  
  • 28.
  • 29.
  • 30.  
  • 31. ♦ 추상 클래스는 인스턴스화가 불가능 하다 .
  • 32.
  • 33.
  • 34.