다형성 3

객체 지향 프로그래밍 (Object-Oriented Programming)

객체 지향 프로그래밍 (Object-Oriented Programming) 일종의 프로그래밍 방법론으로 프로그램을 구성하는 함수와 변수를 묶어서 객체를 만들고 객체 단위로 프로그래밍 하기 위한 방법입니다. 객체 지향 프로그래밍의 장점 - 모듈간의 독립성 증대 + 하나의 프로그램은 여러가지 기능으로 구성 -> 각각의 기능들은 모듈로 구현 + 독립성이 높을 수록 유지보수, 개발이 쉬워짐 + 객체 지향 프로그래밍에서는 모듈화의 단위가 객체 단위가 된다 + 독립적인 기능을 지원하는 객체를 구현하고 객체들을 모아서 프로그램을 개발하는 것이 객체 지향 프로그래밍의 방식 + 객체마다 고유의 기능이 정해져 있기 때문에 특정 객체에서 문제가 발생하면 그 객체만 수정하면 된다. + 객체의 구현이 변경되더라도 객체의 인터페..

Basics/Programming 2014.11.10

C++ 가상 함수 (virtual) - 기본

가상 함수 (Virtual)기본 클래스의 포인터로 호출하더라도 파생 클래스에 재정의된 함수를 호출하도록 만들려면 기본 클래스의 멤버 함수를 가상 함수로 선언해야 한다.- 기본 클래스를 상속받은 파생 클래스에 같은 함수가 있다면 파생 클래스의 함수는 무시되고 기본 클래스의 함수로 실행이 됩니다.- 파생 클래스의 함수를 실행시키고 싶다면 virtual 키워드를 사용해야 합니다. 이전에 상속에서 예를 들었었던 Shape를 예로 들어 이어나가겠습니다.   Shape 클래스 선언부- void Draw() const; 함수에 가상함수 키워드가 없는 이전의 예제입니다. 가상함수 키워드를 사용하지 않고 Draw 함수를 호출하게 되면 아래와 같은 결과가 나옵니다.  파생 클래스(Rectangle, Eclipse)의 Dr..

C++ 상속

객체 지향 프로그래밍이 제공하는 상속이라는 특징은 상속 그 자체로도 의미가 있지만 상속에 의해서 다형성이 제공된다는 점에서 그 의미가 큽니다. 클래스형 변환 규칙클래스와 관련된 형 변환 규칙을 클래스형 변환 규칙이라고 합니다. 규칙들은 아래와 같습니다.- 파생 클래스의 객체는 기본 클래스의 객체로 형 변환 가능하다.- 파생 클래스의 포인터는 기본 클래스의 포인터로 형 변환 가능하다.- 파생 클래스의 레퍼런스는 기본 클래스의 레퍼런스로 형 변환 가능하다. 클래스형 변환 규칙 중 객체 간의 형 변환은 자주 사용되지 않습니다. 주로 포인터 간의 형 변환이나 레퍼런스 간의 형 변환이 사용됩니다. 백문이 불여일견, 예를 통해서 알아보겠습니다.   도형과 사각형, 원의 관계를 예로 들겠습니다.Rectangle과 E..