일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드 앱 개발
- c#
- 네트워크 프로그래밍
- 언제나휴일
- 충남 천안
- 유튜브 동영상 강의
- 강의
- 무료 동영상 강의
- 파이썬
- 실습
- 언제나 휴일
- 캡슐화
- 실습으로 다지는 c#
- 소켓 통신
- 동영상 강의
- 동영상
- 표준 라이브러리 함수
- 원격 제어 프로그램
- 클래스 다이어그램
- Windows Forms
- 추천
- 독립기념관
- 알고리즘
- 소스 코드
- C++
- 프로젝트
- 산책하기 좋은 곳
- 졸업 작품 소재
- 표준 입출력
- c언어
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
[C++] 27. 상속(일반화 관계) 개요 본문
이제 OOP의 세 가지 주요 특징인 캡슐화, 상속, 다형성 중에 상속에 관해 알아볼게요.
상속은 다른 형식에 정의한 것을 마치 자신에서 정의한 것처럼 만드는 OOP의 특징입니다. 이러한 관계를 UML에서는 일반화 관계라 부르고 삼각형과 실선으로 관계를 표시합니다.
일반화 관계는 “피아니스트는 음악가이다.”처럼 “이다.(is a)”로 나타낼 수 있는 관계입니다. 이 때 음악가처럼 일반적인 클래스를 기반 클래스라 말하며 피아니스트처럼 특수한 클래스를 파생 클래스라 부릅니다.
C++에서 일반화 관계를 표현할 때 파생 문법을 이용합니다. 파생 문법은 파생 클래스를 정의할 때 기반 클래스를 다음처럼 나타냅니다.
class Pianist : public Musician
{
};
파생 클래스를 정의하면 기반 클래스에 정의한 것도 자신의 내부에 정의한 것처럼 멤버를 상속받습니다.
예를 들어 음악가 클래스에서 “연주하다.” 기능을 정의하면 파생 클래스 피아니스트에는 기반 클래스의 멤버를 상속받아 “연주하다.” 기능을 정의한 것처럼 사용할 수 있습니다.
//상속 개요
#include <iostream>
#include <string>
using namespace std;
class Musician
{
public:
void Play()
{
cout<<"딩동댕"<<endl;
}
};
class Pianist:
public Musician //Musician 클래스를 기반으로 파생한 Pianist 클래스 정의
{
};
int main()
{
Pianist *pianist = new Pianist();
pianist->Play();
delete pianist;
return 0;
}
▷ 실행 결과
딩동댕
'C & C++ > 디딤돌 C++' 카테고리의 다른 글
[C++] 31. 다형성 개요 (0) | 2024.04.07 |
---|---|
[C++] 30. 무효화 (0) | 2024.04.07 |
[C++] 29. 접근 지정자 protected (0) | 2024.04.07 |
[C++] 28. 파생 개체의 생성과 소멸 과정 (0) | 2024.04.07 |
[C++] 26. 캡슐화 최종 실습 – 구체적 구현 (1) | 2024.04.07 |
[C++] 23. 캡슐화 최종 실습 – 멤버 필드 24. 멤버 메서드 25. 테스트 코드 작성 (1) | 2024.04.07 |
[C++] 22. 캡슐화 최종 실습 – 시나리오 (0) | 2024.04.07 |
[C++] 21. 캡슐화 실습2 – 학생 (1) | 2024.04.07 |