내가 생각하는 차이점.
Struct
기본 접근지정자가 public 이다.
보통 자료들을 묶는 역할을 하고 상속은 하지 않기 때문에 vtbl이 생기지 않는다.
사용자들이 memcpy 할 수 있다.
Class
기본 접근 지정자가 private 이다.
상속을 할 가능성이 있고 그러면 vtbl 이 생긴다.
사용자들이 memcpy 하면 안된다.(vtbl 까지 값 복사 일어남.)
조사 내용
Struct
기본 접근 지정자는 Public
단순한 데이터의 집합체를 나타내기 위해 사용.
Class
기본 접근 지정자는 Private
상속,다형성 및 캡슐화와 같은 객체 지향 개념을 더 잘 지원 -> 이때문에 약간의 오버헤드가 발생할 수 있다.
(그래서 단순 데이터는 struct 권장.)
내용이 다 비슷하지만 좀 더 단어 선택 등이 깔끔한 듯 하다.
궁금증
Struct 와 Class 의 차이는 접근지정자 밖에 없다.
기능은 동일하다고 하는데 만약 진짜 struct를 상속하고 업캐스팅해도 vtbl이 생길까?
잘 된다.
접근 지정자의 차이를 제외하면 용도의 차이 밖에 없는 것이다.
'자문자답 공부' 카테고리의 다른 글
Static / 전역변수 / BSS (1) | 2024.02.28 |
---|---|
포인터 / 배열 (0) | 2024.02.26 |
Virtual 키워드 (0) | 2024.02.21 |
[DirectX11] 공전, 자전, 부모 Mat (2) | 2024.01.02 |
[Directx11] 태양계 과제 (1) | 2023.12.30 |
댓글