[c++] C++에서의 다형성 구현 방법
C++에서는 가상 함수와 추상 클래스를 사용하여 다형성을 구현할 수 있습니다.
가상 함수 (Virtual Functions)
가상 함수는 파생 클래스에서 재정의할 수 있는 함수로, 부모 클래스에서 정의됩니다.
class Shape {
public:
virtual void draw() {
// 기본 구현
}
};
class Circle : public Shape {
public:
void draw() override {
// 원을 그리는 코드
}
};
class Square : public Shape {
public:
void draw() override {
// 사각형을 그리는 코드
}
};
위의 예시에서 Shape
클래스의 draw
함수는 가상 함수로 선언되어 있습니다. 파생 클래스에서 이를 재정의하여 각자의 도형을 그릴 수 있습니다.
추상 클래스 (Abstract Classes)
추상 클래스는 순수 가상 함수(pure virtual function)를 한 개 이상 가지고 있는 클래스입니다.
class Shape {
public:
virtual void draw() = 0; // 순수 가상 함수 (pure virtual function)
};
class Circle : public Shape {
public:
void draw() override {
// 원을 그리는 코드
}
};
class Square : public Shape {
public:
void draw() override {
// 사각형을 그리는 코드
}
};
Shape
클래스에서 draw
함수를 순수 가상 함수로 정의하면, Shape
클래스는 추상 클래스가 되며, 이를 상속받는 파생 클래스에서는 반드시 draw
함수를 구현해야 합니다.
C++에서의 다형성 구현 방법에 대한 간략한 설명이었습니다. 추가적으로 궁금한 사항이 있다면 C++의 공식 문서를 참고하시기 바랍니다.