객체 지향 프로그래밍 : 상속

2021. 6. 13. 14:53·3 - 2학기/객체 지향 프로그래밍

이번에 배울 개념은 상속이라는 개념이다. 상속은 상당히 많이 쓰이는 개념이기 때문에 꼭 머리속에 담아두고 가자.

 

다음과 같은 목차로 포스팅이 이뤄진다.

1. 상속 개념

2. 파생 클래스 정의 및 객체 생성 방법

3. 파생 클래스의 생성자와 소멸자

4. 접근 지정자와 접근 변경자

5. 다중 상속

 

 

1. 상속 개념

: 기존의 클래스가 가진 기능을 이어 받아 새로운 클래스를 정의하는 것을 의미한다.

부모(기본) 클래스 -> 자식(파생) 클래스 인 경우, 부모 클래스의 특징을 자식 클래스가 이어 받는다.

 

* is - a 관계

상속 관계에 있는 두 클래스 사이에는 is - a 관계가 성립한다.

 

장점

- 간결한 클래스 작성, 파생 클래스를 간결하게 작성 가능하다.

- 계층 분류 및 관리가 편하다.

- 클래스 재사용, 확장이 편하다.

 

2. 파생 클래스 정의 및 객체의 생성 방법

 

 

파생 클래스의 객체 생성

 

 

3. 파생 클래스의 생성자 및 소멸자

파생 클래스 생성자는 항상 내부적으로 기본 클래스 생성자를 호출한다. 

 

기본 클래스의 인자 없는 생성자의 암시적 호출이 이뤄진다.

-> 파생 클래스의 생성자에서 기본 클래스의 생성자가 명시적으로 호출되지 않는다면 자동으로 기본 클래스의 디폴트 생성자가 호출된다. 

 

기본 클래스의 생섲자의 특정한 생성자의 명시적 호출

->  기본 클래스 생성자 중 특정한 생성자를 호출하려면 파생 클래스 생성자에서 초기화 리스트를 사용해야 한다.

 

 

 

 

4. 멤버의 접근 지정에 따른 접근성

5. 다중 상속

두 개의 기본 클래스를 상속 받을 필요가 있는 경우

 

충돌 가능성: 부모 클래스에 같은 이름의 멤버가 있는 경우 충돌한다. 어느 멤버인지 확인을 못하기 때문이다.

 

문제점

기본 클래스 멤버 접근의 모호성

 

가상 상속이라는 개념이 있다.

다중 상속으로 인한 기본 클래스 멤버의 중복 상속 해결

 

1. 파생 클래스의 선언문에서 기본 클래스 앞에 virtual로 선언한다.

2. 파생 클래스의 객체가 생성될 때, 기본 클래스의 멤버 공간을 한번만 할당한다. 이미 할당되어 있다면 그 공간을 공유한다.

3. 기본 클래스의 멤버가 중복하여 생성되는 것을 방지한다.

 

 

'3 - 2학기 > 객체 지향 프로그래밍' 카테고리의 다른 글

객체 지향 프로그래밍 : 가상함수와 추상 클래스  (0) 2021.06.13
객체지향 프로그래밍 : 멤버함수와 클래스의 활용  (0) 2021.06.13
객체지향 프로그래밍 : 생성자와 소멸자  (0) 2021.06.13
객체 지향 프로그래밍: 클래스 기초  (0) 2021.06.11
'3 - 2학기/객체 지향 프로그래밍' 카테고리의 다른 글
  • 객체 지향 프로그래밍 : 가상함수와 추상 클래스
  • 객체지향 프로그래밍 : 멤버함수와 클래스의 활용
  • 객체지향 프로그래밍 : 생성자와 소멸자
  • 객체 지향 프로그래밍: 클래스 기초
harvartz의 일지
harvartz의 일지
harvartz_studyharvartz의 일지 님의 블로그입니다.
harvartz의 일지
harvartz_study
harvartz의 일지
전체
오늘
어제
  • 분류 전체보기 (32)
    • 4 - 2학기 (2)
      • 시스템 프로그래밍 (0)
      • 자연어 처리 (0)
      • 정보 검색 (0)
      • 정보 보호 (1)
      • 클라우드 컴퓨팅 (0)
      • 데이터 베이스 (1)
    • 3 - 2학기 (17)
      • 객체 지향 프로그래밍 (5)
      • 객체 지향 설계 (0)
      • 영상 처리 (5)
      • 네트워크 (7)
    • 리눅스 (9)
    • Git (1)
    • 파이썬 문법 (0)
    • Web (2)
    • 코딩 테스트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

11

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.3
harvartz의 일지
객체 지향 프로그래밍 : 상속
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.