[C++] Struct와 Class 차이

Struct와 Class

가장 기본적인 차이는 접근 제어 수준이 다르다.

  • struct : 멤버 변수와 함수가 디폴트로 public
  • class : 멤버 변수와 함수가 디폴트로 private

객체 지향하면 Class가 떠오르는데, 그 핵심 개념 중 하나가 캡슐화다. 캡슐화란 데이터와 그 데이터를 조작하는 함수 (멤버 변수,함수)를 하나의 클래스 안에 묶고, 외부에서 접근하지 못하게하여 데이터의 무결성을 보장한다는 개념을 뜻한다.

여기서 외부에서 접근하지 못하게한다라는 워딩은 바로 접근 제어 수준에 있는 것이다.

class는 private로 선언해 접근 제어 수준을 관리하고 그에 따른 객체지향의 캡슐화를 구현이 가능한 것

Struct

물론 저런 차이뿐이지만 Class는 c++에 와서 생긴 개념이고 Struct는 예전 c언어부터 쓰이던 개념이다. 주로 관련된 데이터를 묶어서 하나의 단위로 관리될때 사용된다.

...

struct Point{
    double x;
    double y;
}

struct Student{
    std::string name;
    int age;
    double gpa; // 학생 학점
}

int main(){
    Point p1;
    p1.x = 5.0;
    p1.y = 3.0;

    Student st1;
    st1.name = "Alice";
    ...
    return 0;
}

참고

⌜비야네 스트롭스트룹⌟, "A Toor Of C++",에이콘