Наследование и происхождение
Если вы впервые слышите это имя, вам следует сначала задуматься о значении этих двух слов. Сначала поговорим о наследстве. Это похоже на значение наследства в реальной жизни. Например, один человек наследует имущество другого человека, а сын наследует наследство своего отца. Аналогично, например, в C++, если есть два класса, новый класс имеет все атрибуты исходного класса, что называется наследованием ! Процесс создания нового класса из исходного класса называется деривацией ! И мы называем исходный класс родительским классом или базовым классом , а класс, производный от базового класса, называется производным классом или подклассом . Каждый может определить свои отношения по имени.
Так в чем же заключаются преимущества наследования и происхождения? Почему в C++ есть этот механизм?
1. Отражать идеи объектно-ориентированного программирования и лучше выражать взаимосвязь между различными типами.
2. Помимо наследования всей информации базового класса, производный класс также может добавлять свою собственную дифференцированную информацию. Подобно принципу биологической эволюции, производный класс будет обновляться на основе наличия всей информации о базовом классе. базовый класс мощный.
3. Члены, унаследованные от производного класса в базовый класс, автоматически и скрыто принадлежат нам, то есть нам не нужно их переопределять. Это экономит много кода и воплощает в себе идею повторного использования кода в программной инженерии.
Далее давайте посмотрим на реализацию реального кода, на то, как наследовать и реализовывать производные классы:
/************************************//Des: Демо-учебник по C++//Автор: Хуанг/ /Авторское право:www.dotcpp.com//Дата:20.06.2018********************************* * *******/#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 представляет публичное наследование, частное наследование и защищенное наследование, о которых мы поговорим позже. В коде мы определяем объект A производного класса AlarmClock в основной функции, а затем можем вызывать методы SetTime и ShowTime из базового класса и использовать их так же, как свои собственные. В то же время мы добавили и определили собственные методы SetAlarm и ShowAlarm в производном классе. Пожалуйста, поймите код и поэкспериментируйте на компьютере.
До сих пор мы представили основные концепции наследования и происхождения. Поняв это, вам нужно поэкспериментировать с кодированием на компьютере, чтобы понять, при каких обстоятельствах два класса, имеющие общие черты и связанные между собой, могут иметь такого рода отношения, и взвесить их. использовать.