Che cosa è una interfaccia CPP?

October 10

Orientati agli oggetti linguaggi di programmazione come C ++ ( "C Plus Plus" o CPP) seguono un paradigma di programmazione orientata verso riutilizzo del codice e la costruzione di gerarchie strutturali in quel codice. Gli sviluppatori creano classi per incapsulare i dati di funzionalità in pezzi logici. Hanno anche fare questo perché alcune tecniche di programmazione orientata agli oggetti, come eredità, permettono la costruzione di classi più complesse da quelle più semplici. Gli sviluppatori possono anche controllare come le classi sono implementati utilizzando le classi Modello di disegno chiamati "interfacce" o "classi astratte" che determinano il modo in altri programmatori usano tali classi.

Oggetti e Inheritance

Durante la creazione di classi e oggetti per un programma in C ++, il programmatore spesso scopre che classi diverse si sovrappongono o condividere una funzionalità simile. Ha poi due scelte: scrivere il codice funzionale per entrambe le classi, o creare una classe di "base" con tutti i tratti e le caratteristiche di queste classi condivise. Poi, le due classi possono "inerente" quei tratti mentre l'aggiunta di loro. Ad esempio, se il programmatore scrive e le classi "associato" "manager" per un'applicazione commerciale, si potrebbe creare una singola classe "Dipendente" che contiene la funzionalità comune e tra i soci e manager.

Funzioni virtuali

Classe base per qualsiasi altra classe può contenere definizioni su ciò che le classi possono fare. e quali informazioni in essi contenute. Quindi, la classe Employee dall'esempio potrebbe contenere una funzione per calcolare stipendio che contiene una formula specifica. Le classi Gestione e Associati inerenti tale funzione, e quindi la formula. Tuttavia, i gestori e collaboratori potrebbero richiedere formula diversa per calcolare lo stipendio. In questo caso, la classe di base conterrebbe una funzione "virtuale". La classe di base definirebbe un comportamento di default, ma le classi bambino potrebbe quindi creare le proprie formule e funzioni in caso di necessità.

classi astratte

Accanto a funzioni virtuali, ci sono funzioni virtuali "puri". funzioni virtuali pure non contengono una definizione di funzione. Piuttosto, essi definiscono semplicemente un nome di funzione. Così, per esempio, la funzione di calcolo stipendio in Dipendente classe base verrebbe dichiarata come virtuale senza una definizione. Poi, le classi Gestione e associati sarebbe definire le proprie funzioni per calcolare lo stipendio. Quando una classe contiene uno o più puramente funzioni virtuali, si parla di una classe astratta. Questo perché le classi con funzioni puramente virtuali non possono diventare oggetti.

Interfacce C ++

Dal momento che le classi astratte non possono diventare oggetti, essi sono chiamati "interfacce". Le interfacce sono classi astratte, spesso contenenti solo le funzioni puramente virtuali che fungono da modello per le altre classi comuni. Quindi, se l'esempio dei dipendenti contiene funzioni virtuali solo puri, allora il programmatore progetta le classi Gestione e associate per ereditare da dipendenti come interfaccia, nel senso che devono implementare le funzioni virtuali puri della classe Employee. Mentre lo standard ISO C ++ non contiene una specifica parola chiave "interfaccia", implementazione Microsoft di C ++ fa (Fonte 3). Ecco un esempio per illustrare questo rapporto.
class Employee {

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

privato:
int ID;
};

Classe Associate: Impiegato pubblico {

pubblico:
int calcSalary () {// Associato deve implementare calcSalary o di un errore
/ Code /
}
};