Клас наследяване в гр

Наследяването се избягва ненужното дублиране на код, когато пишете класове. Нека базата данни или университета и трябва да съхранява информация за всички ученици и учители. Осигуряване на всички данни в един клас, не работи, тъй като трябва да се съхраняват данни, които не са приложими за учители, както и обратното.

Създаване на база клас

За да се реши този проблем, да създаде база клас човешки а. който ще опише човешки модел. Тя ще се съхранява на име, фамилия и фамилното име.

Създаване human.h файл:

Наследство от базовия клас

Сега създайте нов клас ученик. който ще бъде наследник на човешкото клас. Поставете го в student.h файл.

get_average_score функция изчислява средната стойност на всички оценки на учениците. Всички обществени свойства и методи на човешките клас ще бъдат на разположение в клас ученик.

База клас конструктор

За да нулирате конструктора на родителския клас (в нашия случай - е запазване на име, фамилия и фамилното име на ученика), използвайте следния синтаксис:

В конструктора минаваме инициали човешкото лицето, които се съхраняват в потребителския модел. За класа на учениците. ние трябва да зададем още и списък на оценка на учениците. Затова конструкторът да студенти Всички аргументи на базовия клас конструктор и допълнителни аргументи за удължаване функционалност:

Списък на оценките на учениците, се съхраняват в вектора.

Създаване на обект от клас студент

Прилагаме потребителския интерфейс за работа с класа на студент.

В този пример, ние написахме програма, която създава обект от клас ученик. да бъдат пазени на име, фамилия, име на баща си, както и списък на оценки.

След инициализация на обекта, времето за показване на пълното име на ученика, с помощта на get_full_name функция. Тази функция е наследен от човешка базовия клас.

Програмата след това vychisliyaet средно студент резултат и я показва на екрана. Това се занимава get_average_score функция. описахме в групата на студент.

Ние сме внедрили някои функции на нашата институция база данни (разбира се, че преувеличавам, когато работи като сериозни твърдения за реалната база данни :)

Създаване на получен класен

Ние трябва да създадем още един клас, в който да се съхраняват данните на учителите. Нека да го дадете име - учител. Както знаете, ние няма да се опишат всички методи в този клас от нулата, а просто да го наследи от човешкото клас. След това, не е нужно да се приложи име съхранение, фамилия и бащино име на учителя. Тя вече е в базовия клас на хора.

Създаване teacher.h файл:

В класния има нова функция - броят на часовете за обучение, инструкторът определеното за единица време (термин). Останалата част от функционалността се унаследява от човешки базовата клас. Ако пишехме от нулата, и същи код щеше да се случи много пъти повече, и неговата подкрепа ще бъде сложно значително.

Създаване на обект от класен

Промяна на съдържанието на main.cpp на файла. за тестване на класния ръководител.

Ако инсталацията на програмата се проведе без грешка, програмата за работа, резултатът ще бъде:

По същия начин можете да създадете клас, който ще съдържа данни за услуги персонал или управленски персонал. Наследяването се използва, когато всяка група от обекти имат общи параметри, но за всяка една от тези групи трябва да се съхранява повече потребителски данни.

Също така, ние можем да създадем клас, който ще стане дума за курсовете за студент кореспонденция. Това щяхме да наследена от класа на студент. добавяне на допълнителна информация.

Човешкото клас, можете да добавите още повече функции, които ще описват достъпни за всяко лице, данните. Например, номерът на паспорта, дата на раждане, местожителство и местоживеене.

Този подход позволява на няколко пъти, за да се намали дублирането код в реални проекти, и го просят подкрепа.

Когато се налага да използвате конструктора

Ако този клас има много качества - те не са непременно намира в конструктора. За да запишете избраните собствености клас с помощта на настройка функция. Например, за да запишете номера на паспорта, може да се създаде обществен set_passport_number метод (STD :: низ номер). който ще се стойността на имотите и да го запишете в един обект чрез променлива това.