[c++] 구조체와 클래스의 추상 메서드

C++에서 구조체와 클래스는 추상 메서드를 정의할 수 있습니다. 추상 메서드는 실제 구현을 가지지 않고 선언만 되어 있는 메서드를 말합니다.

구조체와 클래스의 기본 개념

C++에서 구조체(struct)와 클래스(class)는 객체 지향 프로그래밍을 지원하기 위해 사용됩니다. 둘 다 데이터와 관련된 동작(메서드)을 포함할 수 있습니다. 주요 차이점은 접근 제어 수준과 상속의 기본 설정입니다.

구조체는 기본적으로 멤버 변수와 메서드에 대한 public 접근 제어 수준이 적용되고, 클래스는 private 접근 제어 수준이 기본 설정됩니다. 따라서, 구조체로도 추상 메서드를 정의할 수 있지만, 클래스에서 더 많이 활용됩니다.

추상 메서드 정의

C++에서 추상 메서드를 정의하려면 해당 메서드를 “순수 가상(virtual) 함수”로 선언해야 합니다. 이는 함수의 정의를 포함하지 않고 단지 선언만 하는 것을 의미합니다. 추상 메서드는 실제 구현을 갖지 않으므로 하위 클래스에서 해당 메서드를 재정의해야 합니다.

class AbstractClass {
public:
    virtual void abstractMethod() = 0; // 순수 가상 함수
};

추상 메서드를 사용하여 인터페이스를 정의하고, 다중 상속과 함께 새로운 클래스를 작성하는 데 유용합니다. 또한, 추상 클래스는 객체로 생성될 수 없기 때문에 하위 클래스가 해당 추상 메서드를 구현하지 않았다면 컴파일 오류가 발생합니다.

결론

구조체와 클래스에서 추상 메서드를 정의하는 방법에 대해 알아보았습니다. 추상 메서드는 객체 지향 프로그래밍에서 중요한 개념이며, 다형성과 유지보수성을 높이는데 도움이 됩니다. 각 상황에 맞게 적절한 방식으로 추상 메서드를 활용하여 프로그램을 설계하는 것이 중요합니다.

참고 자료

  1. C++ Primer Plus, Stephen Prata, ISBN: 9780321776402
  2. cplusplus.com - Virtual functions