[c++] 클래스와 인터페이스

C++는 객체 지향 프로그래밍 언어로, 클래스와 인터페이스를 활용하여 데이터를 캡슐화하고 기능을 추상화합니다. 여기서는 C++에서 클래스와 인터페이스의 개념을 살펴보겠습니다.

클래스

클래스는 데이터와 해당 데이터를 조작하기 위한 함수들을 결합한 사용자 정의 데이터 형식입니다. 클래스를 사용하면 프로그램의 복잡성을 낮추고, 코드를 구조화하여 유지보수성을 향상시킬 수 있습니다.

다음은 Car 클래스의 간단한 예시입니다.

class Car {
public:
    string brand;
    string model;
    int year;
    
    void displayInfo() {
        cout << "Brand: " << brand << ", Model: " << model << ", Year: " << year << endl;
    }
};

위 예제에서 Car 클래스는 자동차를 나타내며, 브랜드, 모델 및 생산년도와 같은 데이터 멤버들을 가집니다. 또한 displayInfo 함수를 통해 해당 데이터를 출력할 수 있습니다.

인터페이스

인터페이스는 클래스의 공개적인 부분으로, 클래스가 제공하는 함수들의 프로토타입들을 정의하고 있습니다. 인터페이스를 사용하면 서로 다른 클래스들이 동일한 인터페이스를 구현함으로써 다형성을 구현할 수 있습니다.

다음은 Shape 인터페이스의 간단한 예시입니다.

class Shape {
public:
    virtual void draw() = 0;
    virtual double area() const = 0;
    virtual double perimeter() const = 0;
};

위 예제에서 Shape 인터페이스는 draw, area, perimeter 함수들의 프로토타입을 정의하고 있습니다. 이렇게 정의된 인터페이스는 다양한 도형 클래스들에서 구현될 수 있습니다.

이처럼 C++의 클래스와 인터페이스는 객체 지향 프로그래밍의 핵심적인 요소로, 코드의 재사용성과 확장성을 높이는데 중요한 역할을 합니다.

참고 자료: