개발하는 리프터 꽃게맨입니다.
[C++] C++에서 구조체 vs 클래스, 차이가 뭘까? 본문
기본 접근권한을 제외하고는 전혀 차이가 없습니다.
접근권한을 명시하지 않을 경우
구조체는 public
클래스는 private라는 차이점만 존재하고
클래스에서 할 수 있는 모든 기능은 구조체 또한 할 수 있습니다.
컴퓨터 또한 이 둘을 구분하지 못하죠.
구조체도 class처럼
멤버 함수, 멤버 변수, 생성자, 소멸자, operater 오버로딩, 가상 함수, 상속 등..
모든 걸 다 할 수 있습니다.
근데, 보통은 가능하다해도 구조체를 class 처럼 쓰는 사람은 별로 없습니다.
대부분의 코딩 규약에서는 둘을 엄밀하게 구분하죠, 헷갈리니까요.
개발자들은 구조체는 전통적인 C 스타일로 쓰는 것을 선호합니다.
다른 데이터 형식을 묶어서 관리하는 용도로만 쓰이죠.
멤버 함수, 가상함수, 상속 등 OOP 개념은 완벽히 배제한 채로 말이죠.
물론 프로젝트마다 생성자 소멸자까지는 허용하는 경우는 있습니다.
'언어 > C, C++' 카테고리의 다른 글
[C++] 클래스가 암시적으로 정의하는 함수들 (0) | 2024.01.06 |
---|---|
[C++] 연산자 오버로딩 (0) | 2024.01.06 |
[C++] 클래스 생성자 (feat. 복사 생성자, 얕은 복사 & 깊은 복사) (2) | 2023.12.27 |
[C++] malloc vs new (2) | 2023.12.27 |
[C++] scanf 가 위험한 이유, scanf 와 cin 의 차이점 (0) | 2023.12.24 |