2학기 6주차 예습과제
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번