** 구조체와 클래스

  * 프로그램 작성 방식
 – 구조화되지 않은 프로그래밍
 – 절차식 프로그래밍
 – 모듈식 프로그래밍
 – 객체지향 프로그래밍

  * 구조체 VS 클래스

   ** 구조화되지 않은 프로그래밍

 – 메인 프로그램 속에 모든 것이 포함된 프로그램
 – C나 C++의 경우 프로그램 전체가 main 함수 하나로 작성된 경우

   ** 절차식 프로그래밍

 – 메인 함수 외에 여러 개의 함수로 구성
 – 프로그래밍 초기에 C만으로 코드를 작성할 때 효율적

   ** 모듈식 프로그래밍

 – 메인 함수 외에 여러 개의 함수로 구성
 – 각각의 모귤은 메인 함수와 관계를 가지며, 각각 별개의 객체로 존재

   ** 객체지향 프로그래밍

 – 메인 함수 없이 여러 개의 객체로 구성
 – 각각의 객체는 생성하고 소멸하는 일을 자체적으로 담당
 – 같은 종류의 객체가 여러 개 존재 가능
 – 메인 함수의 관리하에 데이터를 관리하고 처리하는 것이 아니라 객체들 간에 메시지가 교환

   ** 비 구조체

 – ex) 이름, 나이, 주민등록번호 등을 기록하는 신상카드의 코드화
 – 각가의 배열을 만들어 저장
+ 복잡하다.
+ 배열간에 서로 연결된 정보라는 어던 신호도 존재하지 않음.

   ** 구조체

 – 관리를 쉽게 하기 위해 구조체 도입
 – 구조체 : 다루고 싶은 데이터를 하나의 덩어리로 묶어주는 것.

   ** 클래스

 – 클래스 : 구조체와 같이 단순히 데이터를 묶어주는 것에 만족하지 않고 객체지향 프로그래밍의 특성을 살린 개념
 – Abstraction : 실제 상황으로부터 프로그램내에서 이용하는 모델을 얻어내는 것.
 – ADT(Abstract Data Type) : 사람자체가 아닌 사람의 몇가지 특징만을 뽑아 낸 모델
 – C++에서 사용하는 클래스라는 개념이 ADT의 개념
 – 클래스 : 여러 개의 데이터(abstract data structure)와 그 데이터를 사용하는 함수들(Operation)로 구성

Tags: ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.