C++에서 struct와 class는 둘 다 사용자 정의 타입을 정의할 때 사용하지만, 몇 가지 차이와 특징이 있습니다.
차이점
1. 기본 접근 지정자:
• struct: 기본 접근 지정자는 public입니다.
• class: 기본 접근 지정자는 private입니다.
2. 주 사용 용도:
• struct: 보통 데이터 구조체를 정의하는 데 사용하며, 값만 저장하는 경우에 자주 사용됩니다.
• class: 객체 지향 프로그래밍에서 객체를 정의하고 캡슐화를 적용하는 데 사용됩니다.
3. 상속:
• struct: 상속 시 기본 접근 지정자는 public입니다.
• class: 상속 시 기본 접근 지정자는 private입니다.
장단점
struct의 장단점
• 장점:
• 간단한 데이터 구조를 정의하는 데 용이하며, 코드가 더 간결합니다.
• 기본 접근 지정자가 public이므로 값 타입의 데이터 구조를 정의할 때 직관적입니다.
• 단점:
• 캡슐화가 필요하거나 객체 지향적 개념이 필요한 경우 사용하기 부적합합니다.
class의 장단점
• 장점:
• 캡슐화, 상속, 다형성 등 객체 지향 프로그래밍 기능을 지원하며, 코드 구조화가 용이합니다.
• 기본 접근 지정자가 private이라 중요한 데이터 보호가 가능합니다.
• 단점:
• 코드가 길어지고 복잡해질 수 있으며, 단순한 데이터 구조 정의 시 불필요하게 보일 수 있습니다.
언제 사용할지 결정하는 방법
• 단순히 데이터만 담는 구조체라면 struct를 사용하는 것이 좋고, 객체 지향 프로그래밍을 활용한 설계가 필요하다면 class를 사용하는 것이 일반적입니다.