반응형
클래스와 구조체의 차이를 설명하기 위해 구조체를 하나 선언하겠습니다.
struct person
{
char sex;
int age;
char job[20];
float height;
float weight;
};
헬스장 회원정보를 저장하는 구조체입니다. 회원 한명의 구조체변수를 선언하는 방법은 아래와 같습니다. 이를 '초기화'라고 부릅니다. 초기 값을 입력했기 때문입니다.
int main()
{
struct person kim={'M',28,"teacher",178,68};
};
클래스는 구조체에서 몇가지 기능을 추가한 것이라고 할 수 있습니다. 선언방법은 아래와 같이 동일합니다. struct 대신 class 라고 적으면 됩니다.
class person
{
char sex;
int age;
char job[20];
float height;
float weight;
};
하지만 아래와 같이 값을 초기화하려고 하면 오류가 발생합니다.
int main()
{
class person kim={'M',28,"teacher",178,68};
};
클래스가 갖고 있는 접근여부 결정 기능 때문입니다. 클래스에서는 클래스 맴버에 접근 할 수 있는지 없는지 여부를 결정할 수 있습니다. 디폴트 값은 '접근불가'입니다.
클래스 맴버의 접근 여부를 결정하는 코드를 '접근 지시자'라고 합니다. 아래와 같이 세 가지가 있습니다.
private : 클래스 내부에서만 접근가능
public : 외부에서도 접근가능
protected : 상속관계인 경우 유도클래스에서 접근가능
구조체는 클래스에서 모든 맴버가 public 으로 설정된 것이라 할 수 있습니다.
반응형
'C++ > 클래스' 카테고리의 다른 글
[C++ 클래스의 이해] 4. 생성자와 맴버 이니셜라이저의 기능적 차이 (0) | 2022.08.23 |
---|---|
[C++ 클래스의 이해] 3. 맴버 이니셜라이저란 무엇인가 (0) | 2022.08.23 |
[C++ 클래스의 이해] 2. 생성자란 무엇인가 (0) | 2022.08.19 |
[C++ 클래스의 이해] 1. 클래스와 객체지향이란 무엇인가 (0) | 2022.08.19 |
댓글