C++을 공부하며, 데이터의 집합인 Struct와 Class가 상당히 유사하다고 생각되었다.
Struct도 접근 제한자가 존재하나? - O
Struct도 함수 선언이 가능한가? - O
Struct도 상속이 가능한가? - O
...
하지만 둘은 서로 다른 경우에 쓰인다. 그럼 Struct와 Class의 명확한 차이점이 무엇일까?
위 글을 참고하여 작성하였다.
<요약>
1. 기본 접근 제한자가 다르다.
: 접근 제한자를 쓰지 않는다면 Struct를 생성했을 때는 모든 멤버가 public, class를 생성했을 때는 private 으로 처리된다.
2. 1번 빼고는 똑같다.
어셈블리 관점에서도, struct와 class는 똑같다. 둘 다 동일한 레이아웃을 가진 연속적인 데이터 블록으로 메모리에 표현된다.
3. 단순히 데이터 집합만을 나타낼 때 Struct를 쓰자.
Struct든 Class든 무엇을 사용해도 기능의 차이는 없겠지만, 일관되게 사용하는 것이 혼란을 주지 않을 것이다.
단순히 데이터 집합을 나타낼 때에는 Struct를, 이외에 다른 기능(private 변수, 상속, 함수선언 등등)이 필요할 때는 Class를 사용하는 것이 보편적인 코딩 스타일이다.
'언어 > C++' 카테고리의 다른 글
| [C++] 변수 선언, Loop 안에서? 밖에서? (0) | 2025.07.26 |
|---|---|
| [C++] STL - 연관 컨테이너 (0) | 2024.05.12 |
| [C++] 전위 연산자(++i) vs 후위 연산자(i++) 성능 차이? (0) | 2024.02.29 |
| [C++] 표준 템플릿 라이브러리 (STL) (0) | 2023.12.31 |
| [C++] new와 delete (0) | 2023.12.19 |