
[객체지향프로그래밍] 추상클래스와 추상클래스의 순수가상함수를 파생클래스에서 구현하는 프로그램을 작성하시오.
본 내용은
"
[객체지향프로그래밍] 추상클래스와 추상클래스의 순수가상함수를 파생클래스에서 구현하는 프로그램을 작성하시오.
"
의 원문 자료에서 일부 인용된 것입니다.
2023.09.17
문서 내 토픽
-
1. 파생 클래스파생 클래스(derived class)란 기초 클래스의 특성을 물려받아 새롭게 정의된 클래스이다. 파생 클래스는 첫 번째, 반드시 자신만의 생성자를 작성해야 한다. 두 번째, 기초 클래스의 접근 가능한 모든 멤버 변수가 저장된다. 세 번째, 기초 클래스의 접근 가능한 모든 멤버 변수를 사용할 수 있다. 네 번째, 필요한 만큼 멤버 변수를 추가할 수 있다.
-
2. 오버라이딩오버라이딩(overriding)은 이미 정의되어있는 함수를 무시하고 동일한 이름의 함수를 새롭게 정의하는 것을 의미한다. 오버라이딩은 멤버 함수의 동작만 재정의하기 때문에 함수의 원형은 멤버 함수의 원형과 같아야 한다. 파생 클래스에서 기초 클래스의 멤버 함수를 재정의 할 수 있다.
-
3. 가상 함수가상 함수(virtual function)는 파생 클래스에서 재정의할 멤버 함수를 의미한다. 자신을 호출하는 개체의 타입에 따라 호출할 함수가 결정된다. 가상 함수는 virtual을 사용하여 선언한다.
-
4. 순수 가상 함수순수 가상 함수(pure virtual function)은 가상 함수와는 달리 파생 클래스에서 반드시 재정의해야 하는 함수이다. 순수 가상 함수는 대개 함수의 동작을 정의하는 본체를 갖지 않는다. 따라서 파생 클래스에서 재정의해야만 사용할 수 있다. 순수 가상함수로 추상 클래스를 만들 수 있다.
-
5. 추상 클래스클래스가 하나 이상의 순수 가상 함수를 포함하면 추상 클래스(abstract class)가 된다. 추상 클래스는 다향성을 가진 함수의 집합을 정의한다. 반드시 사용되어야 하는 멤버 함수를 순수 가상 함수로 선언해 놓으면, 파생된 모든 클래스에서 이 가상 함수를 반드시 재정의해야 한다. 추상 클래스는 순수 가상 함수를 반드시 포함하기 때문에, 인스턴스를 생성할 수 없다.
-
6. 추상 클래스 프로그램 작성먼저 Sound 클래스를 선언한다. 순수 가상 함수인 print()를 선언하며 추상 클래스로 지정한다. 그리고 파생 클래스인 Gun, Whistle을 선언한다. 파생 클래스에서 순수 가상 함수 print()를 각각 총 소리와 호루라기 소리를 글로 출력하는 함수로 재정의(오버라이딩)한다. 그리고 오버라이딩 함수를 main함수에서 실행을 하는 프로그램이다.
-
1. 파생 클래스파생 클래스는 기존 클래스(기반 클래스)의 속성과 메서드를 상속받아 새로운 클래스를 만드는 것입니다. 이를 통해 코드의 재사용성을 높이고 유지보수성을 향상시킬 수 있습니다. 파생 클래스는 기반 클래스의 기능을 확장하거나 변경할 수 있으며, 다형성을 구현할 수 있습니다. 이는 객체 지향 프로그래밍의 핵심 개념 중 하나로, 코드의 효율성과 유연성을 높이는 데 중요한 역할을 합니다.
-
2. 오버라이딩오버라이딩은 파생 클래스에서 기반 클래스의 메서드를 재정의하는 것입니다. 이를 통해 기반 클래스의 메서드 동작을 변경할 수 있습니다. 오버라이딩은 다형성을 구현하는 데 핵심적인 역할을 합니다. 동일한 메서드 호출에 대해 서로 다른 동작을 수행할 수 있게 함으로써 코드의 유연성과 확장성을 높일 수 있습니다. 오버라이딩은 객체 지향 프로그래밍의 중요한 개념이며, 코드의 재사용성과 유지보수성을 향상시키는 데 기여합니다.
-
3. 가상 함수가상 함수는 기반 클래스에서 선언되어 파생 클래스에서 재정의될 수 있는 함수입니다. 가상 함수를 사용하면 기반 클래스의 포인터나 참조를 통해 파생 클래스의 메서드를 호출할 수 있습니다. 이를 통해 다형성을 구현할 수 있습니다. 가상 함수는 객체 지향 프로그래밍에서 매우 중요한 개념이며, 코드의 유연성과 확장성을 높이는 데 기여합니다. 또한 가상 함수는 추상 클래스와 함께 사용되어 추상 클래스의 인터페이스를 정의하는 데 사용됩니다.
-
4. 순수 가상 함수순수 가상 함수는 기반 클래스에서 선언되지만 구현되지 않은 함수입니다. 파생 클래스에서 반드시 이 함수를 재정의해야 합니다. 순수 가상 함수를 포함하는 클래스를 추상 클래스라고 합니다. 추상 클래스는 인스턴스화할 수 없지만, 파생 클래스에서 구현되어 사용될 수 있습니다. 순수 가상 함수와 추상 클래스는 객체 지향 프로그래밍에서 중요한 개념으로, 코드의 재사용성과 유지보수성을 높이는 데 기여합니다.
-
5. 추상 클래스추상 클래스는 하나 이상의 순수 가상 함수를 포함하는 클래스입니다. 추상 클래스는 인스턴스화할 수 없지만, 파생 클래스에서 구현되어 사용될 수 있습니다. 추상 클래스는 공통된 기능과 속성을 정의하고, 파생 클래스에서 이를 구현하도록 함으로써 코드의 재사용성과 유지보수성을 높일 수 있습니다. 또한 추상 클래스는 인터페이스를 정의하는 데 사용되며, 다형성을 구현하는 데 중요한 역할을 합니다.
-
6. 추상 클래스 프로그램 작성추상 클래스를 활용한 프로그램 작성은 객체 지향 프로그래밍의 핵심 개념을 잘 보여줍니다. 추상 클래스를 정의하고 이를 상속받는 파생 클래스를 구현함으로써 코드의 재사용성과 유지보수성을 높일 수 있습니다. 또한 추상 클래스의 순수 가상 함수를 구현하여 다형성을 구현할 수 있습니다. 이를 통해 유연하고 확장 가능한 프로그램을 작성할 수 있습니다. 추상 클래스 프로그램 작성은 객체 지향 프로그래밍의 핵심 원리를 이해하고 적용하는 데 도움이 됩니다.