반응형

하향 캐스팅 7

[C++ 무료 동영상 강의] 37. 하향 캐스팅

[C++ 무료 동영상 강의] 37. 하향 캐스팅 다루는 내용하향 캐스팅,상향 캐스팅,dynamic_cast, 명시적 형변환의 문제점 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 37. 하향 캐스팅

[C#] 6.2.2 is 연산자와 as 연산자

6.2.2 is 연산자와 as 연산자 이처럼 기반 형식의 변수로 파생된 개체를 참조할 수 있다는 특징은 사용의 편의성이 제공합니다. 하지만 프로그램에서 파생 형식에만 캡슐화된 멤버에 접근하여 사용해야 할 때도 있습니다. 이 때 is 연산자와 as 연산자를 사용하면 파생 개체를 참조할 수 있습니다. ▶ 용어: 상향 캐스팅 , 하향 캐스팅 Stu stu = man as Stu; //파생된 형식 개체 참조 if (stu != null) //man이 Stu개체일 때 { stu.Study(); } else { Console.WriteLine("Stu 형식 개체가 아닙니다. "); } is 연산자는 이항 연산자로 좌항에 변수가 오고 우항에 형식 명을 명시하면 해당 변수가 해당 형식으로 호환할 수 있는지를 반환합니다..

[C++] 84. 최종 실습 - 파티

[C++] 84. 최종 실습 - 파티 이번에는 파티 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 파티 기능은 다운타운에 있는 모든 학생의 Drink을 수행합니다. 그런데 각 장소에서는 해당 장소에서 명령할 수 있는 기능만 보이게 한정하였기 때문에 IPlay 인터페이스 형식으로 학생 개체에 접근해야 합니다.그리고 IPlay 인터페이스에 Drink 메서드를 순수 가상 메서드로 약속하세요. interface IPlay { virtual void Drink()=0; }; 다운타운의 Party 기능을 구현합시다. void Downtown::Party()//파티 { cout

[C++] 82. 최종 실습 - 소등

[C++] 82. 최종 실습 - 소등 이번에는 소등 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 소등 기능은 주거지에 있는 모든 학생의 Sleep을 수행하게 합니다. 그런데 각 장소에서는 해당 장소에서 명령할 수 있는 기능만 보이게 한정하였기 때문에 IRelax 인터페이스 형식으로 학생 개체에 접근해야 합니다.그리고 IRelax 인터페이스에 Sleep 메서드를 순수 가상 메서드로 약속하세요. interface IStudy { virtual void Sleep()=0; }; 주거지의 TurnOff 기능을 구현합시다. void Village::TurnOff()//소등 { cout

[C++] 37. 하향 캐스팅(dynamic_cast)

이번에는 기반 형식 포인터 변수로 참조하고 있는 형식을 프로그램 동작 시에 파생 형식으로 형 변환하는 하향 캐스팅을 알아보기로 해요. 다형성은 캡슐화와 상속을 보다 효과적이고 현실 세계에 근접하게 표현할 수 있게 해주는 특징입니다. 하지만 기반 클래스 형식 포인터 변수로 파생 개체를 관리하는 것은 치명적인 단점이 있습니다. 만약 기반 클래스 형식에서는 약속할 필요가 없는 메서드가 파생 클래스 형식에 있을 때 해당 메서드의 접근 수준을 public으로 제공해도 접근하지 못합니다. 이러한 약점을 보완하기 위해 많은 OOP언어에서는 런 타임에 파생 개체 형식으로 형 변환(캐스팅)하는 방법을 제공하고 있으며 이를 하향 캐스팅이라 합니다. C++언어에서는 dynamic_cast를 통해 하향 캐스팅을 제공하고 있습..

[C++] 31. 다형성 개요

이번에는 OOP의 주요 특징 세 가지인 캡슐화, 상속, 다형성 중에 다형성에 관해 살펴봅시다. 다형성은 기반 형식의 멤버를 파생 형식에서 상속받는 장점을 활용할 수 있는 OOP 특징입니다. 하나의 기반 형식에서 파생한 다양한 파생 클래스가 있을 때 같은 형식의 변수로 접근할 수 있으면 프로그래밍을 효과적으로 할 수 있겠죠. C++언어에서는 기반 형식의 포인터 변수로 파생 형식의 개체를 설정할 수 있습니다. 그리고 기반 형식의 참조 변수로 파생 형식의 개체를 설정할 수도 있습니다. class Musician { }; class Pianist:public Musician { }; int main() { Musician *musician = new Pianist(); //기반 형식 포인터 변수에 파생 형식 개..

[C++ 동영상 강의] 6장 다형성

[C++ 동영상 강의] 6장 다형성 개체의 다형성메서드의 다형성하향 캐스팅IT 전문가로 가는 길 Escort C++국내도서저자 : 장문석출판 : 언제나휴일 2013.03.05상세보기 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다.

반응형