📚책읽기

[C++] 큐, 스택, 단순 링크드 리스트, 클래스 상속, public 파생, public 상속

공대 컴린이 2023. 2. 14. 11:37
728x90

큐(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 관계

- 파생 클래스는 기초 클래스 생성자, 파괴자, 대입 연산자는 상속하지 않는다.

728x90