구조체와 클래스의 차이점은?
1 분
프로그래밍 언어C++OOP
개요
이 문서는 C++에서 구조체(structure)와 클래스(class)의 차이점을 정리한 것이다.
서론
C++에서 구조체와 클래스는 문법적으로 매우 비슷하다. 기본적으로 두 문법 모두 변수와 함수(메서드)를 포함하여 새로운 데이터 타입을 정의하는 역할을 한다. 또한 C++에서는 구조체에도 함수를 포함할 수 있다. 이런 이유로 C++의 구조체는 클래스와 매우 유사해 보인다.
이 문서에서는 구조체와 클래스의 차이점을 설명한다.
구조체와 클래스의 차이점
결정적인 차이는 객체지향 프로그래밍(OOP) 에 있다. C++의 클래스는 OOP를 구현하기 위한 문법이다. 예를 들어, 클래스 멤버의 기본 접근 제어자는 private이며, 이는 OOP의 특징 중 하나인 캡슐화(Encapsulation) 를 지원한다.
아래는 차이점을 정리한 표이다.
| 클래스 | 구조체 | |
|---|---|---|
| 목적 | OOP를 지원하기 위해 사용 | 변수와 함수를 묶기 위해 사용 |
| 접근 제어자 | 기본적으로 멤버가 private | 기본적으로 멤버가 public |
| 선언 방법 | class 키워드를 사용하여 선언 | struct 키워드를 사용하여 선언 |
| 사용 용도 | 데이터 추상화 및 상속 등에 주로 사용 | 서로 다른 데이터 타입을 묶는 용도로 주로 사용 |
마무리
내가 처음 배운 객체지향 언어인 Java에는 구조체 문법이 없어서 이런 차이를 공부할 기회가 없었다. 하지만 이번 기회를 통해 클래스와 구조체의 차이를 살펴볼 수 있어서 좋았다.