C++ 구조체는 언제 사용해야 하나 ?

mohadang·2022년 12월 4일
0

C++

목록 보기
39/48
post-thumbnail

구조체 vs 클래스

  • 어셈블리 내에서는 구조체와 클래스가 같은 데이터 그룹일 뿐이라서 컴퓨터가 구분 못함 그러나 컴파일러는 구분 함.
  • 구조체 기본 접근권한 : pubilc
  • 클래스 기본 접근권한 : private
  • 둘의 차이점은 없다, 컴파일러 입장에서는 둘의 차이점을 모른다
  • 함수를 넣어야 한다면 무조건 클래스로 만들어야 한다.
  • C++에서는 구조체를 클래스처럼 쓸 수 있음 하지만 절대 그러지 말 것. 구조체는 C스타일로 사용하는 것을 권고

struct는 순수하게 데이터뿐이여야 함.

  • 사용자가 선언한 생성자나 소멸자X
  • static아닌 private/protected 멤버 변수 X
  • 가상 함수 X
  • POD(Plain Old Data : int, float, char)만 두어서 메모리 카피 가능하게끔 만들자
    • memcpy()를 사용하여 struct를 char[]로, 혹은 반대로 복사할 수 있음.
    • 포인터나 참조형같은 데이터를 두어서 deep copy 문제를 일으키면 그것은 구조체로 만들어서는 안된다.
    • 그래서 struct 안에는 class가 있으면 안되고 같은 성질을 가진 struct만 둘 수 있다.
profile
mohadang

0개의 댓글