[c++] C++ 구조체와 클래스의 차이점

C++ 구조체와 클래스의 차이점

C++에서 구조체(struct)와 클래스(class)는 유사한 기능을 가지고 있지만, 몇 가지 중요한 차이점이 있습니다.

구조체(struct)

구조체는 C 언어에서 유래된 개념으로, 변수와 함수를 묶어 하나의 새로운 자료형을 정의합니다. 구조체의 멤버 변수는 기본적으로 public이고, 함수 멤버는 일반적으로 사용되지 않습니다.

struct Point {
    int x;
    int y;
};

클래스(class)

클래스는 C++에서 새롭게 도입된 개념으로, 구조체에서 제공하는 기능에 더해, private 및 protected 접근 제어 등의 개념을 포함합니다. 클래스는 멤버 함수를 통해 객체의 동작을 정의할 수 있어, 좀 더 객체 지향적인 프로그래밍을 할 수 있습니다.

class Circle {
private:
    double radius;
public:
    void setRadius(double r) {
        radius = r;
    }
    double getArea() {
        return 3.14 * radius * radius;
    }
};

차이점

  1. 접근 제어
    • 구조체는 기본적으로 public 접근 제어를 갖지만, 클래스는 private 및 protected 접근 제어를 사용할 수 있습니다.
  2. 기본 접근 제어
    • 구조체의 멤버 변수는 기본적으로 public이지만, 클래스의 멤버 변수는 private입니다.
  3. 기본적인 동작
    • 구조체는 기본적으로 함수 멤버를 포함하지 않을 수 있지만, 클래스는 멤버 함수를 포함해야 합니다.

이러한 차이로 인해, 클래스는 일반적으로 보다 복잡한 기능을 제공하기 위해 사용되고, 구조체는 간단한 데이터 그룹을 표현하기 위해 사용됩니다. ```