상속과 파생
이 이름을 처음 듣는다면 먼저 이 두 단어의 의미를 생각해 보아야 합니다. 먼저 상속에 대해 이야기해 보겠습니다. 이는 실제 생활에서의 상속의 의미와 유사합니다. 예를 들어, 한 사람이 다른 사람의 재산을 상속받는 경우, 아들이 아버지의 재산을 상속받는 경우를 상속이라고 합니다. 마찬가지로, 예를 들어 C++에서 두 개의 클래스가 있는 경우 새 클래스는 원래 클래스의 모든 속성을 갖게 되는데, 이를 상속 이라고 합니다! 원래 클래스에서 새 클래스를 생성하는 프로세스를 파생 이라고 합니다! 그리고 원래 클래스를 부모 클래스 또는 기본 클래스 라고 부르고, 기본 클래스에서 파생된 클래스를 파생 클래스 또는 하위 클래스 라고 합니다. 누구나 이름을 보면 관계를 알 수 있습니다.
그렇다면 상속과 파생의 이점은 무엇입니까? C++에 왜 이런 메커니즘이 있나요?
1. 객체 지향 프로그래밍 아이디어를 반영하고 다양한 유형 간의 관계를 더 잘 표현합니다.
2. 파생 클래스는 기본 클래스의 모든 정보를 상속받는 것 외에도 생물학적 진화의 원리와 마찬가지로 자체적으로 다르고 차별화된 정보를 추가할 수도 있습니다. 파생 클래스는 기본 클래스의 모든 정보를 가지고 있는 기반으로 업데이트됩니다. 기본 클래스.
3. 파생 클래스에서 기본 클래스로 상속된 멤버는 자동으로 은밀하게 소유됩니다. 즉, 재정의할 필요가 없습니다. 이는 많은 코드를 절약하고 코드 재사용에 대한 소프트웨어 엔지니어링 아이디어를 구현합니다.
다음으로 실제 코드의 구현과 파생 클래스를 상속하고 구현하는 방법을 살펴보겠습니다.
/************************************//Des: C++ 튜토리얼 데모//저자: Huang/ /저작권:www.dotcpp.com//날짜:2018/6/20************************************ * *******/#include<iostream>usingnamespacestd;classClock{private:intH;intM;intS;public:intSetTime(inth,intm,ints){this->H=h;this->M=m ; this->S=s;return0;}intShowTime(){cout<<Now:<<H<<:<<M<<:<<S<<endl;return0;}};classAlarmClock:publicClock{private: intAH ;intAM;public:intSetAlarm(intAH,intAM){this->AH=AH;this->AM=AM;return0;}intShowAlarm(){cout<<AlarmTime:<<AH<<:<<AM<< endl ;return0;}};intmain(){AlarmClockA;A.SetTime(19,15,50);A.ShowTime();A.SetAlarm(5,30);A.ShowAlarm();return0;}
실행 스크린샷은 다음과 같습니다.
코드를 읽고 이해하십시오. Clock은 기본 클래스이고 AlarmClock은 파생 클래스를 정의하는 문에 주의하세요.
classAlarmClock:publicClock
상속은 콜론으로 표시됩니다 . 여기서 public은 공개 상속, 비공개 상속, 보호 상속을 나타냅니다. 이에 대해서는 나중에 자세히 설명하겠습니다. 코드에서는 기본 함수에서 파생 클래스 AlarmClock의 객체 A를 정의한 다음 기본 클래스에서 SetTime 및 ShowTime 메서드를 호출하고 이를 자체 클래스와 동일하게 사용할 수 있습니다. 동시에 파생 클래스에 자체 SetAlarm 및 ShowAlarm 메서드를 추가하고 정의했습니다. 코드를 이해하고 컴퓨터에서 실험해 보세요.
지금까지 상속과 파생의 기본 개념을 소개했습니다. 이를 이해한 후에는 공통점이 있고 관련이 있는 두 클래스가 어떤 상황에서 이러한 관계를 가질 수 있는지 이해하기 위해 컴퓨터에서 코딩을 실험해야 합니다. 사용.