Nwlapcug.com


Che cos'è un interfaccia CPP?

Linguaggi di programmazione orientato agli oggetti come C++ ("C Plus Plus" o CPP) seguono un paradigma di programmazione orientato verso il riutilizzo del codice e la costruzione di gerarchie strutturali in quel codice. Gli sviluppatori di creare classi per incapsulare dati in funzionalità in parti logiche. Lo fanno anche perché alcune tecniche in OOP, ad esempio l'ereditarietà, consentono la costruzione di classi più complesse da quelle più semplici. Gli sviluppatori possono inoltre controllare come classi vengono implementate utilizzando le classi del modello di design chiamate "interfacce" o "classi astratte" che determinano come altri programmatori utilizzano tali classi.

Gli oggetti e l'ereditarietà

Durante la creazione di classi e oggetti per un programma in C++, il programmatore si scopre spesso che diverse classi si sovrappongono o condividere funzionalità simili. Poi lei ha due scelte: scrivere il codice funzionale per entrambe le classi, o creare una classe "base" con tutti i tratti condivisi e le caratteristiche di tali classi. Quindi, le due classi possono "intrinseca" quei tratti durante l'aggiunta di loro. Ad esempio, se il programmatore scrive "Associate" e "Manager" classi per un app di affari, lei potrebbe creare una singola classe di "Dipendente" che contiene le funzionalità comuni e tra soci e dirigenti.

Funzioni virtuali

Classe di base per qualsiasi altra classe può contenere definizioni su cosa possono fare classi. e quali sono le informazioni che contengono. Così, la classe di dipendente dall'esempio potrebbe contenere una funzione per calcolare lo stipendio che contiene una formula specifica. Le classi Manager e socio inerente che funzionano e quindi la formula. Tuttavia, dirigenti e soci potrebbero richiedere differente formula per calcolare lo stipendio. In questo caso, la classe base contiene una funzione "virtuale". La classe base sarebbe definire un comportamento predefinito, ma le classi figlio potrebbero quindi creare le proprie formule e funzioni, se necessario.

Classi astratte

A fianco di funzioni virtuali, ci sono funzioni virtuali "pure". Funzioni virtuali pure non contengono una definizione di funzione. Piuttosto, essi definiscono semplicemente un nome di funzione. Così, ad esempio, la funzione di calcolo stipendio nella classe base dipendente vengono dichiarate come virtuale senza una definizione. Quindi, le classi Manager e socio sarebbero definire le proprie funzioni per calcolare lo stipendio. Quando una classe contiene una o più funzioni puramente virtuale, si chiama una classe astratta. Ciò è perché le classi con funzioni virtuali pure non possono diventare oggetti.

Interfacce C++

Poiché le classi astratte non possono diventare oggetti, essi sono chiamati "interfacce". Le interfacce sono classi astratte, spesso contenenti solo funzioni virtuali pure che servono come modello per altre classi comuni. Così se l'esempio di dipendente contiene solo le funzioni virtuali pure, quindi il programmatore progetta le classi Manager e socio di ereditare da dipendente come un'interfaccia, significa che deve implementare le funzioni virtuali pure della classe Employee. Mentre lo standard ISO C++ non contiene una parola chiave specifica di "interfaccia", implementazione di Microsoft C++ fa (fonte 3). Ecco un esempio per illustrare questa relazione.
class Employee {

pubblico:
virtual int calcSalary() = 0; funzione virtuale pura

privato:
int ID;
};

Socio di classe: public Employee {

pubblico:
calcSalary() int {//Associate deve implementare calcSalary o si ottiene un errore
/codice/
}
};