호빵의 IT 개발소

[C/C#] 구조체와 클래스 본문

CS(전공지식)/프로그래밍언어

[C/C#] 구조체와 클래스

호빵Stack 2022. 6. 19. 21:32

구조체(Struct)

  • 구조체는 변수와 함수로 이루어져 있습니다. 구조체의 경우 생성자를 사용하게 되면 몇가지 제약 조건이 생기게 됩니다. 매개변수가 없는 생성자를 만들 수 없고, 생성자를 생성하게 되면 필드가 모두 할당이 되어있어야 합니다.
  • 구조체는 상속이라는 개념이 없습니다. 그리고 구조체의 경우 스택 메모리에 할당이 되기 때문에 생성을 하면 초기값을 설정을 해야 합니다.
  • 구조체를 사용해야 하는 경우는 짧게 생성되고 없어지는 경우, 클래스를 사용할 필요가 없는 경우 사용됩니다.

 

클래스(Class)

  • 클래스는 구조체가 할 수 없는 일들을 쉽게 코드를 작성할 수 있도록 만들어진 개념입니다. 객체 지향 개념이 생기며 함께 생긴 개념으로 자식 클래스와 부모 클래스의 개념이 생기고 상속이라는 기능이 생기게 된 것이 클래스이다.
  • 상속이란 부모 클래스에 있는 성질을 자식클래스에게 물려 받고 또 다른 성질을 표현합니다. 앞에 추상, 가상함수를 설명하면서 WeakAnimal 클래스가 Animal 클래스를 상속받아 동물의 공통적인 기능을 Animal에서 받아왔습니다. 
  • 클래스는 구조체와 다르게 힙 메모리에 할당되기 때문에 클래스가 할당된 힙 메모리의  주소가 스택 메모리에 추가됩니다. 메모리의 주소와 실제 메모리가 다르게 됩니다.
  • 클래스를 사용해야하는 경우는 상속이 필요하고 메모리를 많이 차지하는 경우 사용됩니다.

 

 

 

 

 

 

 

참고 및 출처 : https://tip1234.tistory.com/195

Comments