구조와 클래스는 몇 가지 차이점을 제외하고 C++에서 매우 유사합니다. 따라서 C++에서 클래스나 구조체를 언제 사용할지 결정하는 데 도움이 되는 이러한 차이점에 대한 세부 정보가 아래에 나와 있습니다.
클래스와 구조의 차이점
클래스의 모든 구성원은 기본적으로 비공개입니다. 이는 구조의 모든 구성원이 기본적으로 공개되기 때문에 구조와 다릅니다.
C++에서 클래스를 보여주는 프로그램은 다음과 같습니다 -
예시
#include <iostream> using namespace std; class Example { int val; }; int main() { Example obj; obj.val = 20; return 0; }
이 프로그램은 val이 기본적으로 private이므로 obj를 사용하여 직접 액세스할 수 없으므로 오류가 발생합니다.
C++에서 구조를 보여주는 프로그램은 다음과 같습니다 -
예시
#include <iostream> using namespace std; struct Example { int val; }; int main() { Example obj; obj.val = 20; cout<<"Value is: "<<obj.val; return 0; }
출력
위 프로그램의 출력은 다음과 같습니다 -
Value is: 20
위의 프로그램은 val이 기본적으로 공개되어 있으므로 올바르게 작동하므로 obj를 사용하여 직접 액세스할 수 있습니다.
클래스와 구조체의 또 다른 차이점은 상속 중에 분명합니다. 클래스를 상속할 때 기본 클래스의 액세스 지정자는 기본적으로 private입니다. 이에 비해 구조체를 상속할 때 기본 구조체의 접근 지정자는 기본적으로 public입니다.