C ++

Наследяване на C ++

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

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

Защо наследяване?

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

Тип наследство

Има различни видове наследяване:

  1. Обикновено / единично наследяване
  2. Йерархично наследяване
  3. Наследяване на много нива
  4. Множествено наследяване

В тази статия ще разгледаме само просто / единично наследяване.

Пример 1:

Сега, нека разгледаме примерна програма, за да разберем концепцията за наследяване в C++. Дефинирали сме основен клас и след това извлекли друг клас от него. Следователно производният клас ще има характеристиките (членове и функции) от базовия клас.

#include
използване на пространство от имена std;
клас Base_Class

публично:
int i;
показване на празнота ()

Cout << "Display of Base Class " << i << endl;

;
клас Derived_Class: публичен Base_Class

публично:
празно шоу ()

Cout << "Show of Derived Class" << endl;

;
int main ()

Извлечен_клас dc;
dc.i = 100;
dc.дисплей ();
dc.покажи ();
връщане 0;

Пример 2:

Това е друг пример за наследяване в C++. В този пример ще видим как се извикват конструкторите при създаване на производен обект на клас.

Както можете да видите по-долу, ние сме дефинирали два конструктора на основен клас и три конструктора на производен клас. Можете ясно да забележите от изхода по-долу, че конструкторът на базовия клас се извиква първо преди да бъде извикан конструкторът на производен клас.

#include
#include
използване на пространство от имена std;
клас Base_Class

публично:
Base_Class ()

Cout << "Base_Class - No Parameters" << endl;

Base_Class (int x)

Cout << "Base_Class - Parameters : " << x << endl;

;
клас Derived_Class: публичен Base_Class

публично:
Производен_клас ()

Cout << "Derived_Class - No Parameters" << endl;

Производен_клас (int y)

Cout << "Derived_Class - Parameters : " << y << endl;

Производен_клас (int x, int y): Base_Class (x)

Cout << "Param of Derived_Class : " << y << endl;

;
int main ()

Производен_клас d (7,19);

Пример 3:

В този пример ще видим как могат да се използват обекти от производен клас.

Както можете да видите, има дефинирани два класа: Rectangle_Class и Cube_Class. Rectangle_Class е основният клас, от който произведеният клас, т.е.д., Извежда се Cube_Class. Следователно наследяваме функциите от Rectangle_Class до Cube_Class.

Също така можете да забележите, че наследяваме Cube_Class с контрола за публичен достъп. Това означава, че производният клас може да има достъп до всички не-частни членове на базовия клас.

Декларирахме обект от производния клас и след това извикахме методите от базовия клас, т.е.д., setLength () и setBreadth ().

#include
използване на пространство от имена std;
клас Rectangle_Class

частно:
дължина int;
int широчина;
публично:
Rectangle_Class ();
Rectangle_Class (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()

дължина на връщане;

int getBreadth ()

връщане на широчина;

void setLength (int l);
void setBreadth (int b);
int area ();
;
клас Cube_Class: публичен Rectangle_Class

частно:
вътрешна височина;
публично:
Cube_Class (int h)

височина = h;

int getHeight ()

височина на връщане;

void setHeight (int h)

височина = h;

обем на int ()

връщане getLength () * getBreadth () * височина;

;
Rectangle_Class :: Rectangle_Class ()

дължина = 1;
широчина = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

дължина = l;
широчина = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

дължина = r.дължина;
широчина = r.широчина;

void Rectangle_Class :: setLength (int l)

дължина = l;

void Rectangle_Class :: setBreadth (int b)

широчина = b;

int Rectangle_Class :: area ()

дължина на връщане * широчина;

int main ()

Cube_Class c (8);
° С.setLength (12);
° С.setBreadth (9);
Cout<<"Volume is "<

Заключение:

В тази статия обясних концепцията за наследяване в C++. C ++ поддържа различни видове наследяване, включително „множествено наследяване“ (т.е.д., наследяване на функции от множество основен клас или родителски клас). За да го улесня обаче, тук разгледах само единично наследство. Показах три работни примера, за да обясня как можем да използваме наследяване в програмирането на C ++ и да използваме повторно кода. Освен това това е много полезна характеристика на C++.

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