>  기사  >  백엔드 개발  >  C++에서 다형성 및 상속 기능을 구현하는 방법은 무엇입니까?

C++에서 다형성 및 상속 기능을 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-08-27 14:39:22479검색

C++에서 다형성 및 상속 기능을 구현하는 방법은 무엇입니까?

C++에서 다형성 및 상속 기능을 구현하는 방법은 무엇입니까?

C++에서 다형성과 상속은 코드의 가독성과 재사용성을 향상시킬 수 있는 두 가지 중요한 기능입니다. 이 기사에서는 C++에서 다형성 및 상속 기능을 구현하는 방법을 소개하고 코드 예제를 제공합니다.

1. 상속 기능

상속은 객체지향 프로그래밍의 기본 개념 중 하나입니다. 이를 통해 새 클래스를 만들고 기존 클래스의 속성과 메서드를 상속받을 수 있습니다.

C++에서는 "class" 키워드를 사용하여 클래스를 정의하고 ":" 연산자를 통해 상속을 구현합니다. 파생 클래스를 만들 때 공용 상속, 전용 상속 또는 보호 상속을 사용하도록 선택할 수 있습니다.

코드 예:

#include <iostream>
using namespace std;

// 基类
class Shape {
public:
    virtual float getArea() = 0; // 纯虚函数
};

// 派生类
class Rectangle : public Shape {
public:
    float width;
    float height;
    
    float getArea() {
        return width * height;
    }
};

int main() {
    Rectangle rect;
    rect.width = 10;
    rect.height = 5;
    
    float area = rect.getArea();
    cout << "矩形的面积:" << area << endl;
    
    return 0;
}

위 코드에서는 순수 가상 함수 getArea()를 정의하는 기본 클래스 Shape를 생성합니다. 그런 다음 Shape 클래스를 상속하고 getArea() 함수를 구현하는 파생 클래스 Rectangle을 만들었습니다. 메인 함수에서는 Rectangle 객체를 생성하고 직사각형의 면적을 계산합니다.

2. 다형성 특성

다형성은 동일한 기능이라도 객체의 유형에 따라 다른 동작을 나타낼 수 있음을 의미합니다. C++에서 다형성은 가상 함수와 포인터 또는 기본 클래스에 대한 참조를 통해 달성됩니다.

가상 함수는 기본 클래스에서 선언되고 파생 클래스에서 재정의되어야 합니다. 기본 클래스 포인터 또는 참조가 파생 클래스 개체를 가리키는 경우 파생 클래스의 함수가 호출됩니다.

코드 예:

#include <iostream>
using namespace std;

// 基类
class Shape {
public:
    virtual float getArea() = 0; // 纯虚函数
};

// 派生类1
class Rectangle : public Shape {
public:
    float width;
    float height;
    
    float getArea() {
        return width * height;
    }
};

// 派生类2
class Circle : public Shape {
public:
    float radius;
    
    float getArea() {
        return 3.14 * radius * radius;
    }
};

int main() {
    Rectangle rect;
    rect.width = 10;
    rect.height = 5;
    
    Circle circle;
    circle.radius = 4;
    
    Shape* shape1 = &rect; // 基类指针指向派生类对象
    Shape* shape2 = &circle; // 基类指针指向派生类对象
    
    float area1 = shape1->getArea();
    float area2 = shape2->getArea();
    
    cout << "矩形的面积:" << area1 << endl;
    cout << "圆的面积:" << area2 << endl;
    
    return 0;
}

위 코드에서는 Rectangle과 Circle이라는 두 개의 파생 클래스를 만들었습니다. 둘 다 기본 클래스 Shape에서 상속되고 getArea() 함수를 구현합니다. 메인 함수에서는 기본 클래스 포인터인 Shape1과 Shape2를 사용하여 각각 Rectangle과 Circle 객체를 가리키고 이를 통해 getArea() 함수를 호출하여 다형성을 달성합니다.

요약:

상속 기능을 통해 C++에서 공통 속성과 메서드를 사용하여 클래스를 만들고 코드 재사용을 달성할 수 있습니다. 다형성 기능을 통해 기본 클래스 포인터나 참조의 경우 실제 객체의 유형에 따라 해당 함수를 호출할 수 있습니다. 이를 통해 코드 유연성과 확장성이 향상됩니다.

위 내용은 C++에서 다형성 및 상속 기능을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.