레이블이 structure인 게시물을 표시합니다. 모든 게시물 표시
레이블이 structure인 게시물을 표시합니다. 모든 게시물 표시

2021년 4월 30일 금요일

C++에서 class 와 structure 의 차이

 C++ 에서 개발할 때 class 와 structure 를 많이 씁니다.

근데 개발자들이 개발할 때 혼동해서 쓰는 경우가 많습니다.

사실 혼동해서 써도 내부적으로 별 차이 없어서 문제는 발생하지 않지만, 개념적으로 제대로 이해하는게 좋겠죠?


   class

변수와 함수를 정의하는 틀입니다.

쉽게 설명하자면 붕어빵을 만들 때 붕어빵을 만드는 틀이라고 생각하면 편합니다.

변수는 데이터를 저장하는 저장 공간입니다.

함수는 특정 명령을 만들어놓은 거죠.

붕어빵 틀에 반죽을 부어라~

붕어빵 틀 뚜껑을 닫아라.. 이런것들입니다.


   structure

데이터를 묶어 놓은 틀이라고 보시면 됩니다.

class와 다른 점이 데이터만 묶어 놓은 구조라고 보시면 됩니다.

그런데 사실 structure에도 생성자와 소멸자, 함수를 다 넣을 수 있습니다.

클래스와 다를게 하나도 없는것이죠?

이게 개념적으로는 잘못된 부분입니다. 원칙적으로는 structure는 데이터만 넣어서 사용하시는게 맞습니다.


   class 와 structure의 다른 점?

C++ 에서 개발 시에는 전혀 다른 점이 없습니다.

딱 기본 접근 지정자만 다릅니다.

class는 기본 접근 지정자가 private으로 동작합니다.

structure는 기본 접근 지정자가 public 으로 동작합니다.

그리고 위에서 설명한거처럼 개념상의 차이만 있을 뿐 실제로 두가지를 아무렇게나 써도 컴파일러는 정상 동작합니다.

저도 개발 시 structure에 함수를 넣어서 사용하기는 하지만 structure 자체에 속한 데이터에 상당히 긴밀하게 종속적인 경우를 제외하고는 최대한 내부에 함수를 안 넣습니다.