2024년 2학기/C++ 프로그래밍

2학기 6주차 예습과제

윤지선 2024. 10. 6. 23:03

C와 C++의 구조체(struct) 차이점

구조체(struct) : 다른 형의 데이터들을 하나의 단위로 취급

형태 : struct + 구조체 이름  {

 각각의 구조체들을 선언

}

ex) 사람형을 구조체로 만들겠다!

struct Man {

   int age

   char name [10]

   double weight
}; //이 세미콜론 필수

 

std::cout으로 double형을 출력시 %g를 이용한것처럼 딱 길이에 맞기 출력됨

 

C에서는 구조체, C++에서는 클래스, 구조체

 

C++에서 클래스와 구조체의 차이는 접근 제어 속성이 struct는 public, class는 private이 기본이다. 

* 구조체는 같은 필드를 갖는 레코드를 관리하기 용이

-> 필드(field) : 속성을 나타내는 정보의 최소 단위

-> 레코드(record) : 자료를 저장하거나 표현하는 기본 단위

                              연관된 필드의 집합

 

02. 객체지향 프로그래밍

- 캡슐화

- 상속

- 폴리몰피증(다형성)

 

Q. 왜 구조적 프로그래밍에서 객체지향 프로그래밍으로 발전됐는가?

A. 구조적 프로그래밍은 자료-처리동작의 연결성이 떨어져 유지보스의 어려움

 -> 처리동작 - '자료를 묶어 다루는 객체' 라는 개념을 도입

 

 

(1) 객체 : 자료와 이를 처리하는 동작인 연산(method)을 하나로 묶어 만든 요소

- 인스턴스 : 어떤 클래스에서 생성된 객체 혹은 한 클래스에 속하는 각각의 객체

- class : 객체의 타입으로서 객체의 기본 규격

- ADT : C++에서는 class로 추상 자료형을 지원 => 캡슐화

   -> 자료에 대한 연산을 외부와 단절하는 개념

- 상속

   -> 파생클래스 : 자식 클래스 = 속성을 상속받은 하위클래스

   -> 기본 클래스 : 부모 클래스 : 상위 클래스

   => 하위 클래스일수록 세분화, 구체화된 클래스

- 다형성 : 유사한 기능은 하나의 이름(인터페이스)으로 복잡도를 감소시킴

   -> 하나의 이름으로 함수, 연산자를 여러 목적으로 중첩하여 사용

 

(2) 클래스 다이어그램

특성 : 멤버 변수

행위 : 멤버 함수

 

class 클래스명{

속성 : 

   자료선언 : 

속성 : 

   함수선언 : 

} (객체변수); //객체 정의 1

 

클래스 명 객체변수; //객체 정의 2번