Suprascrierea funcției în C++ explicată

Publicat: 2022-11-09

Cuprins

Ce este o funcție?

O funcție este o piesă care aparține unui cod pentru executarea unei sarcini stipulate într-un program. Este important să aveți cunoștințe de primă mână despre moștenire pentru a învăța că implementarea moștenirii este un mandat pentru această funcție. O funcție C++ este o colecție de instrucțiuni combinate pentru a executa o sarcină. Toate programele au o funcție main() și anumite programe au funcții adăugate. Declarația funcției trimite compilatorului numele funcției, tipul returnat și parametrii pentru a determina corpul funcției prin definiția funcției. O funcție poate fi o procedură, o metodă sau o subrutină, iar toate funcțiile C++ constau dintr-un antet și un corp.

Sintaxa unei funcții C++: -

return_type function_name(lista de parametri) {

corp funcțional

}

Componente :-

  • Tip de returnare - Acesta denotă tipul de valoare returnată al funcției.
  • Nume funcție - Acesta reprezintă numele funcției care formează semnătura funcției și lista de parametri.
  • Parametri - Acesta este un substituent pentru valoarea pe care o returnează funcția. Când este apelată o funcție, valoarea transmisă parametrului este cunoscută ca parametrul real.
  • Corpul funcției - Corpul funcției cuprinde lista de instrucțiuni care definesc sarcina funcției.

Cum să apelați o funcție

O funcție trebuie invocată sau apelată înainte de utilizare, după care controlul este transferat acesteia pentru îndeplinirea sarcinii necesare. Instrucțiunea return dă înapoi controlul programului principal după aceasta. Parametrii și numele funcției trebuie să treacă pentru a apela o funcție. Argumentele pot fi transmise unei funcții în mai multe moduri în timpul apelării acesteia. Tipurile de apeluri sunt următoarele:

  • Apel după valoare
  • Apel prin referință
  • Apel cu pointer

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.

Suprascrierea funcției în C++

Suprascrierea C++ este o idee prin care este definită o funcție cu același nume. Funcția clasei de bază în suprascriere este redefinită în cadrul clasei derivate, care suprascrie funcția clasei de bază. Implementarea polimorfismului de rulare poate fi definită și ca suprascriere a funcției. Aici, timpul de rulare al programului suprascrie funcția.

Suprascrierea funcției permite programatorilor să folosească o funcție din clasa fiu găsită în clasa părinte. Ca rezultat, clasa copil moștenește fiecare membru de date și funcțiile membru găsite în clasa părinte. Pentru a suprascrie orice funcționalitate de clasă copil, trebuie să implementați suprascrierea funcției. Suprascrierea funcției se referă la realizarea unei noi versiuni a funcției clasei părinte în cadrul clasei copil.

Sintaxă pentru a implementa suprascrierea funcției în C++

Când aceeași funcție definită atât în ​​clasa bazată, cât și în clasa derivată este apelată folosind obiectul din clasa derivată, execută funcția de clasă derivată. Aceasta este suprascrierea funcției în C++.

Mai jos este cea mai utilizată sintaxă pentru implementarea suprascrierii funcției în C++:

// Program C++ pentru demonstrarea suprascrierii funcției

#include <iostream>

folosind namespace std;

clasă de bază {

public:

void print() {

cout << „Funcția de bază” << endl;

}

};

class Derivat : public Base {

public:

void print() {

cout << „Funcție derivată” << endl;

}

};

int main() {

derivat derivat1;

derivat1.print();

returnează 0;

}

Ieșire

Funcție derivată

Aceasta redefinește funcția clasei de bază în cadrul clasei derivate. Prin urmare, return-type, function_parameters și function_name trebuie să fie aceleași pentru a obține suprascrierea funcției.

Cursuri populare și articole despre inginerie software

Programe populare
Program Executive PG în Dezvoltare Software - IIIT B Programul de Certificat Blockchain - PURDUE Programul de certificate de securitate cibernetică - PURDUE MSC în Informatică - IIIT B
Alte articole populare
Salariu inginer cloud în SUA 2021-22 Salariu AWS Solution Architect în SUA Salariu pentru dezvoltatori backend în SUA Salariu pentru Dezvoltator Front End în SUA
Salariu web developer in SUA Întrebări de interviu Scrum Master în 2022 Cum să începi o carieră în securitatea cibernetică în 2022? Opțiuni de carieră în SUA pentru studenții la inginerie

Cum funcționează suprascrierea funcției în C++

OOP-urile trebuie să permită claselor derivate să moștenească caracteristicile clasei părinte. Suprascrierea funcției permite programatorilor să suprascrie orice funcționalitate dintr-o clasă dintr-o anumită clasă derivată. Acest lucru este util în special atunci când o clasă copil are nevoie de varianta sa de funcționalitate.

Mai jos este un exemplu simplu de suprascriere a funcției în C++ pentru o mai bună înțelegere:

#include <iostream>

folosind namespace std;

clasa parent_class

{

public:

virtual void print()

{

cout << „\nAceasta este metoda print()”

„de BaseClass”;

}

};

class derived_class : clasă_părinte publică

{

public:

// Suprascrierea funcției – o nouă definiție a

// metoda de tipărire a clasei de bază

void print()

{

cout << „\nAceasta este metoda print()”

”de Clasa Derivată”;

}

};

// Codul șoferului

int main()

{

derived_class obj;

obj.print();

}

Accesați funcția suprascrisă în C++

Operatorul de rezoluție a domeniului este utilizat pentru accesarea funcției suprascrise a clasei de bază în C++. Funcția suprascrisă poate fi accesată și prin utilizarea unui pointer de clasă de bază pentru a indica un obiect din clasa derivată și apoi a apela funcția din indicator.

// Program C++ pentru a accesa funcția suprascrisă

// în main() folosind operatorul de rezoluție a domeniului ::

#include <iostream>

folosind namespace std;

clasă de bază {

public:

void print() {

cout << „Funcția de bază” << endl;

}

};

class Derivat : public Base {

public:

void print() {

cout << „Funcție derivată” << endl;

}

};

int main() {

Derivat derivat1, derivat2;

derivat1.print();

// accesează funcția print() a clasei de bază

derivat2.Base::print();

returnează 0;

}

Ieșire

Funcție derivată

Funcția de bază

Declarația din sintaxă; derivat2.Base::print(); oferă acces la funcția print() a clasei de bază.

Funcția de apelare anulată din clasa derivată

Puteți folosi moștenirea pentru a modifica comportamentul unei funcții. Cu toate acestea, uneori, nu trebuie să schimbați sau să înlocuiți funcționalitatea clasei de bază/părinte. În schimb, trebuie adăugate mai multe funcționalități.

Mai jos este un exemplu de utilizare a funcției suprascrise apel dintr-o clasă derivată.

// Program C++ pentru a apela funcția suprascrisă

// dintr-o funcție membră a clasei derivate

#include <iostream>

folosind namespace std;

clasă de bază {

public:

void print() {

cout << „Funcția de bază” << endl;

}

};

class Derivat : public Base {

public:

void print() {

cout << „Funcție derivată” << endl;

// apelează funcția suprascrisă

Base::print();

}

};

int main() {

derivat derivat1;

derivat1.print();

returnează 0;

}

Ieșire

Funcție derivată

Funcția de bază

În acest program, funcția suprascrisă a fost apelată în cadrul clasei Derived.

class Derivat : public Base {

public:

void print() {

cout << „Funcție derivată” << endl;

Base::print();

}

};

Codul Base::print();, apelează funcția suprascrisă din clasa Derived.

Supraîncărcarea funcției vs. Suprascrierea funcției

Puteți obține supraîncărcarea funcției la un timp de compilare, de obicei realizată în cadrul claselor derivate și de bază. Oferă mai mult de o definiție a funcției prin modificarea semnăturii fiecărei funcții, cum ar fi tipul de date sau tipul de returnare a parametrilor.

Pe de altă parte, suprascrierea funcției poate fi realizată în timpul execuției. Clasa de bază în suprascriere este redefinită în clasa derivată cu aceiași parametri și același tip de returnare. Să aflăm ce alte caracteristici fac aceste două funcții diferite.

Depășirea Supraîncărcare
Moştenire Necesită moștenirea clasei Nu necesită moștenire de clasă
Semnătura funcției Diferă ca semnătură fie prin tipul, fie prin numărul de parametri. Semnăturile funcției rămân aceleași
Domeniul de aplicare Funcțiile diferă în domeniul de aplicare Deține același domeniu de aplicare
Comportamentul funcției Necesar atunci când o funcție de clasă derivată funcționează diferit sau cu funcționalitate adăugată decât funcția de clasă de bază. Necesar atunci când funcțiile care poartă același nume au comportamente diferite în funcție de parametrii dați.

Concluzie

Suprascrierea funcției în C++ ajută la economisirea spațiului de memorie și la menținerea lizibilității și coerenței oricărui cod. De asemenea, ajută la reutilizarea codului cu ușurință. Inutil să spun că cunoștințele despre suprascrierea funcției sunt o abilitate importantă pe care trebuie să o dețineți dacă vedeți un viitor pentru dvs. în programare.

Dacă doriți să vă alăturați unui curs de încredere și premium pentru a vă începe cariera în acest domeniu, vă puteți înscrie la masteratul în știință informatică al upGrad pe upGrad. Unele dintre punctele cheie ale acestui program sunt următoarele: -

  • Aflați MERN Stack, Microservicii, JavaScript etc.
  • Învățare sănătoasă pe Cloud Labs
  • Experimentați cu instrumente utilizate pe Netflix, LinkedIn, Facebook etc.
  • Învățați-vă în peste 10 instrumente și limbaje de programare
  • Asistență pentru studenți 24/7

Cum se întâmplă suprascrierea funcției?

Funcția C++ override are loc prin moștenire, adică atunci când o clasă moștenește o altă clasă. Când clasa derivată și clasa de bază posedă funcții membre având același tip de returnare, nume și listă de argumente, se numește suprascriere funcție.

Care este diferența dintre supraîncărcarea funcției și suprascrierea funcției în C++?

Suprascrierea funcției are loc atunci când funcțiile posedă același prototip în clasele de bază și derivate. Supraîncărcarea funcției este efectuată atunci când într-o clasă există mai multe funcții cu un nume similar.

Care sunt caracteristicile supraîncărcării funcțiilor în C++?

Supraîncărcarea funcțiilor în C++ este utilizată în primul rând pentru îmbunătățirea lizibilității codului. Programatorii îl folosesc astfel încât să nu fie nevoiți să memoreze numeroase nume de funcții. Clasele cu funcții multiple, parametri diferiți și același nume se numesc supraîncărcate.