Universidad de Magallanes

Research


Direction of Research


facebook twitter youtube
02 de August del 2019

c++ 추상클래스 예제

추상 클래스(ABC라고도 함)의 목적은 다른 클래스가 상속할 수 있는 적절한 기본 클래스를 제공하는 것입니다. 추상 클래스는 개체를 인스턴스화하는 데 사용할 수 없으며 인터페이스로만 사용됩니다. 추상 클래스의 개체를 인스턴스화하려고 하면 컴파일 오류가 발생합니다. 개체를 인스턴스화하는 데 사용할 수 있는 클래스를 콘크리트 클래스라고 합니다. 추상 클래스는 매개 변수 형식, 함수 반환 형식 또는 명시적 변환의 유형으로 사용할 수 없으며 추상 클래스의 개체를 선언할 수 없습니다. 추상 클래스에 대한 포인터 및 참조를 선언하는 데 사용할 수 있습니다. 외부 응용 프로그램에서 제공하는 기능(즉, 공용 함수)은 추상 기본 클래스의 순수 가상 함수로 제공됩니다. 이러한 순수 가상 함수의 구현은 응용 프로그램의 특정 유형에 해당하는 파생 클래스에 제공됩니다. 순수 한 추상 기본 클래스에 구체적인 멤버 함수 및 데이터를 추가 하는 큰 유혹이 있다. 이것은 일반적으로 인터페이스가 잘 고려되지 않은 표시입니다, 저항해야합니다. 데이터 및 구체적인 멤버 함수는 특정 구현을 암시하는 경향이 있으며 인터페이스에서 상속할 수 있지만 해당 인터페이스가 되어서는 안 됩니다. 대신 콘크리트 클래스 간에 공통점이 있는 경우 순수 추상 클래스에서 인터페이스를 상속하고 콘크리트 클래스의 공통 데이터 및 멤버 함수를 정의하는 추상 클래스를 만드는 것이 좋습니다.

상속 또는 집계를 사용할지 여부를 결정하기 위해 몇 가지 주의를 기울여야 합니다. 상속 계층이 너무 많면 클래스의 유지 관리 및 사용이 어려워질 수 있습니다. 일반적으로 상속의 최대 허용 계층은 약 3이며, 그 위에 클래스의 리팩터링이 일반적으로 요구됩니다. 일반적인 테스트는 사각형에서와 같이 “is”대 “가 있다”입니다. 추상 클래스에 대한 포인터 및 참조를 선언할 수 있습니다. 위의 예제에서 Base 클래스는 순수 가상 show() 함수를 사용하여 추상적이므로 기본 클래스의 개체를 만들 수 없습니다. 부모 클래스가 getArea() 라는 함수를 구현하기 위해 기본 클래스에 대한 인터페이스를 제공하는 다음 예제를 생각해 보십시오- 추상 클래스는 기본 클래스로 특별히 사용되도록 설계된 클래스입니다.

inicio atrás arriba

HIGHLIGHTS

  • LINKS


  • Dirección de Investigación

    Investigación • Avenida Bulnes 01890 • Punta Arenas • Chile
    Teléfono: +56 61 2 209 397 • Email: dir.investigacion@umag.cl