큐(Queue)
- 큐는 항목들을 순서대로 보관하는 추상화 데이터형(ADT)이다.
- FIFO(선입선출)구조로, 큐의 머리 부분에서만 큐의 삭제가 일어나고 꼬리 부분에서만 데이터 삽입이 추가된다.
스택(Stack)
- LIFO(후입선출) 구조로, 스택의 동일한 한쪽 끝에서만 추가와 삭제가 일어난다.
단순 링크드 리스트(Singly Linked List)
- 각 노드가 그 다음 노드를 지시하는 하나의 링크(또는 포인터)만 가지고 있는 구조
- 첫번째 노드의 주소만 알면, 그 리스트에 연결된 각 노드들이 지시하는 포인터들을 계속 추적해 갈 수 있다.
- 리스트의 마지막 노드에 있는 포인터는 연결된 노드가 더 이상 없다는 뜻으로 NULL로 설정된다.
클래스 상속 (Class Inheritance)
- 기초 클래스라고 부르는 클래스로부터 모든 메서드와 멤버들을 상속받아, 새로운 파생 클래스를 만들 수 있게 한다.
- 즉, 기초 클래스를 파생 클래스로 정의할 수 있게 함으로써 프로그래밍 코드를 사용자의 특별하 ㄴ요구에 대응할 수 있게 해준다.
public 파생 (Public Derivation)
- 파생 클래스의 객체는 기초 클래스의 객체를 합병한다.
- public 파생에서는 기초 클래스의 public 멤버들이 파생 클래스의 public 멤버가 된다.
- 기초 클래스의 private 부분도 파생 클래스의 일부가 되지만, 그들은 기초 클래스의 protected 메서드와 public 메서드를 통해서만 접근할 수 있다.
- 즉, 파생 클래스는 기초 클래스의 private 데이터에 직접적으로 접근하지 못하고, 기초클래스의 public 메서드를 사용해야 한다.
- 각각의 파생 클래스는 자신만의 생성자가 필요하다.
- 기초클래스 생성자를 먼저 호출한 뒤, 파생 클래스의 생성자를 호출하게 된다.
- 파괴는 파생 클래스의 파괴자를 먼저 호출하고, 기초 클래스의 파괴자를 호출한다.
public 상속
- public 상속은 is-a 관계를 나타낸다. ( is-a-kind-of 로 표시할 수도 있다 )
- is-a 관계란 파생 클래스 객체가 기초 클래스 객체이기도 하다는 것을 뜻한다. (= 파생 클래스 객체가 기초 클래스 객체의 한 종류다)
- 기초 클래스 객체를 대상으로 수행할 수 있는 모든 작업을, 파생 클래스 객체에 대해서도 수행할 수 있다.
- 다른 관계 : has-a 관계, is-like-a 관계, is-implemented-as-a 관계, uses-a 관계
- 파생 클래스는 기초 클래스 생성자, 파괴자, 대입 연산자는 상속하지 않는다.
'📚책읽기' 카테고리의 다른 글
[C++] 가상 함수 테이블, 접근 제어(protected,private), 추상화 기초 클래스, 순수 가상 함수, 디폴트 생성자, 객체리턴/참조리턴, 기초클래스 파괴자, 프렌드 상속 (0) | 2023.02.14 |
---|---|
[C++] 다형, 가상메서드, 정적결합/동적결합, 업캐스팅, 다운캐스팅 (0) | 2023.02.14 |
[C++] 디폴트 생성자, NULL, 포인터와 객체, 위치 지정 new (0) | 2023.02.06 |
[C++] static 멤버, 생성자/파괴자 (0) | 2023.02.03 |
[C++] 랜덤함수, explicit(명시적 데이터형 변환), 변환함수, 프렌드 (friend), 연산자 오버로딩, 오버로딩 제약, Vector클래스 (0) | 2023.02.02 |