C/C++ 학습 · 2 min read · Oct 10, 2025
C/C++ 단계별 학습 - 페이지 14
14. 단계별 C/C++ — C++ 프로그래밍 - 상속
상속
| | 소개
파생 클래스와 기본 클래스
파생 클래스 지정
파생 클래스 생성자
접근 지정자
공용
비공용
보호됨
상속 없는 접근 지정자
보호된 접근 지정자
접근 지정자의 범위
상속과 함께하는 접근 지정자
상속의 유형
단일 상속
다중 상속
다단계 상속
혼합 상속
계층 상속 |
소개
상속은 객체 지향 프로그래밍의 가장 강력한 기능입니다. 상속은 기존 또는 기본 클래스에서 파생 클래스라고 하는 새로운 클래스를 생성하는 과정입니다. 파생 클래스는 기본 클래스의 모든 기능을 상속받지만, 자신의 장식과 세부 사항을 추가할 수 있습니다.
파생 클래스라고 하는 클래스는 기본 클래스라고 하는 다른 클래스의 기능을 상속받을 수 있습니다.
기본 클래스의 특성을 파생 클래스에 상속하는 것을 상속이라고 합니다 .
그 명사는 유산입니다. 우리는 일상 생활에서 클래스가 하위 클래스로 파생되는 개념을 사용합니다. 예를 들어, 차량은 클래스이며 다시 자전거, 오토바이, 자동차, 트럭, 버스 등으로 나뉩니다.
여기서 차량은 기본 클래스로 알려지고, 파생 항목은 파생 클래스 또는 하위 클래스로 알려집니다. **
일반적으로 모든 기본 클래스는 품질 및 기능 목록을 가지고 있습니다. 이 상속의 주요 주제는 기본 클래스의 모든 공통 특성을 파생 클래스와 공유하는 것입니다.
| |
|
상속은 재사용성을 허용하는 중요한 기능을 가지고 있습니다. 재사용성의 한 결과는 클래스 라이브러리를 배포하는 용이성입니다. 프로그래머는 다른 사람이나 회사가 만든 클래스를 사용할 수 있으며, 수정하지 않고도 특정 상황에 맞게 다른 클래스를 파생할 수 있습니다.
파생 클래스와 기본 클래스
파생 클래스라고 하는 클래스는 기본 클래스라고 하는 다른 클래스의 기능을 상속받을 수 있습니다.
파생 클래스는 자신의 다른 기능을 추가할 수 있으므로 기본 클래스의 전문화된 버전이 됩니다.
상속은 기존 클래스의 기능을 확장하고 계층적 관계를 사용하여 프로그램을 설계하는 강력한 방법을 제공합니다.
파생 클래스 및 파생 클래스의 객체에서 기본 클래스 멤버에 대한 접근 가능성은 중요한 문제입니다. 파생 클래스의 객체는 기본 클래스의 데이터 또는 함수에 접근할 수 있으며, 이는 파생 클래스에서 보호된 키워드로 접두사가 붙습니다. 클래스는 기본 클래스에서 공개적으로 또는 비공식적으로 파생될 수 있습니다.
공식적으로 파생된 클래스의 객체는 기본 클래스의 공용 멤버에 접근할 수 있지만, 비공식적으로 파생된 클래스의 객체는 접근할 수 없습니다.
다이어그램은 파생 클래스가 상속하는 방법을 보여줍니다.
| |
|
클래스는 하나 이상의 기본 클래스에서 파생될 수 있습니다. 이것을 다중 상속이라고 합니다. 클래스는 다른 클래스 내에 포함될 수도 있습니다.
파생 클래스 지정
클래스 선언은 class 키워드를 사용하여 매우 쉽고, 파생 클래스 선언도 쉽지만, 클래스는 기본 클래스 ID와 접근 지정자로 끝나야 합니다.
파생 클래스를 선언하는 구문:
Class
예를 들어 class result : public stud;
| | / 학생 기록을 수집하고 표시하는 프로그램 /
#include
using namespace std;
class add
{
private :
char str[20];
char city[20];
int pin;
public :
void get_add()
{
cout << “주소를 입력하세요 거리, 도시, 우편번호”;
cin >> street >>city>>pin;
}
void put_data()
{
cout << “주소는 “ << str
<
};
class stud : public add
{
private :
int sno;
char name[20];
int m1,m2,m3;
public :
void get_data()
{
cout << “학생 번호를 입력하세요 “; cin >> sno;
cout << “학생 이름을 입력하세요 “; cin >> name;
cout << “학생 3과목 점수를 입력하세요 “;
cin >> m1 << m2 << m3;
}
void put_data()
{
cout << “학생 번호 :” << sno;
cout << “학생 이름 :” << name;
cout << “학생 점수 :
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.