개발하는 리프터 꽃게맨입니다.

[C++] C++에서 구조체 vs 클래스, 차이가 뭘까? 본문

언어/C, C++

[C++] C++에서 구조체 vs 클래스, 차이가 뭘까?

파워꽃게맨 2023. 12. 28. 00:03

기본 접근권한을 제외하고는 전혀 차이가 없습니다.

 

접근권한을 명시하지 않을 경우

구조체는 public

클래스는 private라는 차이점만 존재하고

 

클래스에서 할 수 있는 모든 기능은 구조체 또한 할 수 있습니다.

컴퓨터 또한 이 둘을 구분하지 못하죠.

 

구조체도 class처럼

멤버 함수, 멤버 변수, 생성자, 소멸자, operater 오버로딩, 가상 함수, 상속 등..

모든 걸 다 할 수 있습니다.

 

근데, 보통은 가능하다해도 구조체를 class 처럼 쓰는 사람은 별로 없습니다.

대부분의 코딩 규약에서는 둘을 엄밀하게 구분하죠, 헷갈리니까요.

 

개발자들은 구조체는 전통적인 C 스타일로 쓰는 것을 선호합니다.

다른 데이터 형식을 묶어서 관리하는 용도로만 쓰이죠.

멤버 함수, 가상함수, 상속 등 OOP 개념은 완벽히 배제한 채로 말이죠.

 

물론 프로젝트마다 생성자 소멸자까지는 허용하는 경우는 있습니다.