1. 접근 제어 지시자
구조체의 경우, 접근 제어 지시자를 따로 선언하지 않으면 모든 변수와 함수는 public으로 선언된다.
클래스의 경우, 접근 제어 지시자를 따로 선언하지 않으면 모든 변수와 함수는 private으로 선언된다.
2. 상속
구조체는 상속이 불가능하다.
클래스는 상속 가능하다.
3. 메모리 할당 영역
구조체는 메모리의 스택 영역에 저장된다. (예외 있음)
클래스는 메모리의 힙 영역에 저장된다.
<예외> 구조체가 메모리의 힙 영역에 할당되는 경우
1. 모든 필드의 합이 16Bytes를 넘기는 경우
2. 구조체 안에 클래스 타입을 필드로 가지는 경우
3. new 연산자를 사용하는 경우
참고한 사이트
'C++' 카테고리의 다른 글
namespace 사용 이유 (0) | 2020.01.26 |
---|---|
call-by-value와 call-by-reference의 차이 (0) | 2020.01.26 |
int와 long의 차이 (0) | 2020.01.22 |
char 자료형과 ASCII 코드 (0) | 2020.01.22 |
float과 double의 차이 (자료형의 크기 정리) (0) | 2020.01.22 |