C++에서 struct와 class는 데이터와 해당 데이터를 조작하는 함수들을 하나로 묶는 사용자 정의 타입을 정의하는 데 사용됩니다. 이 두 키워드의 차이점은 기본적인 접근 지정자의 차이와 클래스의 기본 상속 지정자에 있습니다. 그러나 기능적으로는 많은 부분이 공유되므로 상호 대체 가능한 경우도 있습니다. 아래는 struct와 class의 차이점을 설명하는 몇 가지 요소입니다:
접근 지정자 기본값:
struct: 멤버 변수와 함수의 접근 지정자 기본값은 public입니다.
class: 멤버 변수와 함수의 접근 지정자 기본값은 private입니다.
상속:
struct: 상속할 때 기본적으로 public 상속입니다. (struct에서 상속한 멤버는 public으로 유지됩니다.)
class: 상속할 때 기본적으로 private 상속입니다. (class에서 상속한 멤버는 private으로 유지됩니다.)
사용 권장:
struct: 데이터의 저장과 간단한 함수들로 구성된 데이터 구조를 나타낼 때 주로 사용됩니다.
class: 더 복잡한 객체를 나타내기 위해 사용됩니다. 멤버 변수와 함수가 은닉화되어야 하거나, 클래스의 인터페이스를 명시적으로 정의하고자 할 때 주로 사용됩니다.
기능:
struct와 class 모두 멤버 변수와 멤버 함수를 포함할 수 있습니다.
두 경우 모두 생성자, 소멸자, 연산자 오버로딩 등을 정의할 수 있습니다.
상속과 가상 함수를 지원하며, 다형성을 활용할 수 있습니다.
요약하자면, struct는 기본적으로 public 접근 지정자와 public 상속을 가지며, 주로 단순한 데이터 구조를 표현할 때 사용됩니다. class는 기본적으로 private 접근 지정자와 private 상속을 가지며, 객체를 나타내는 데 더 많은 제어와 은닉성을 제공합니다. 그러나 실제로는 struct와 class를 교환해 사용할 수 있으며, 개발자의 선호나 프로젝트의 일관성에 따라 선택할 수 있습니다.
'[프로그램]' 카테고리의 다른 글
| c# wpf 프로젝트 만들기 (0) | 2023.07.19 |
|---|---|
| C++에서 spdlog는 간편하게 사용할 수 있는 로깅 라이브러리입니다. (0) | 2023.07.17 |
| C++에서 템플릿은 제네릭 프로그래밍을 지원하기 위한 강력한 기능입니다. (0) | 2023.07.17 |
| C++에서 소수점을 올림하는 방법은 ceil 함수를 사용하는 것입니다. (0) | 2023.07.17 |
| C++ 타이머 c++ settimer 응용 예제 (0) | 2023.07.17 |