Klass implementeringsfil - Class implementation file
I objektorientert programmering , er en klasse gjennomføring fil blir ofte brukt til å inneholde gjennomføringen koden for metode (e) av en klasse . Denne filen er også referert til som en kildefil . Programmeringsspråk som C og C ++ bruker disse implementeringsfilene for å skille grensesnittet og implementeringen av disse metodene.
Motivasjon
Ved å bruke denne strukturen opprettes også en klassedefinisjonsfil som inneholder erklæringen til klassen og dens medlemmer. Hvis klassedefinisjonen er inkludert, og implementeringsfilen for metodene er tilgjengelig, kan brukeren instantiere et objekt fra klassen. Hensikten med denne strukturen er å holde implementeringskoden skjult, men la brukeren se designet.
Brukere bruker det offentlige grensesnittet til et objekt for å gjøre det å lage objekter så enkle som mulig, og sørge for at klientkoden ikke distraherer brukeren med unødvendige detaljer om klassens implementering. Dette gir brukeren den informasjonen som trengs for å bruke klassen effektivt, men hindrer ham eller henne i å skade den kompilerte koden.
Strukturen til en klasseimplementeringsfil
En implementeringsfil brukes i C ++ programmering når du lager en klassedefinisjon for å dele grensesnittet fra implementeringen. Den topptekstfilen skulde alle medlemsfunksjoner (metoder) og dataene metoder (felt) at klassen har.
Implementeringsfilen inneholder den faktiske definisjonen eller kildekoden til metodene som er angitt i toppfilen . Denne filen kan starte med en topptekstblokk, som gir kommentarer som beskriver formålet med den definerte klassen og eventuelle detaljer om opprettelsen av den faktiske filen, for eksempel forfatteren av filen og datoen filen ble opprettet. Det kan også inkludere alle biblioteker fra C ++ Standardbiblioteket som vil bli brukt av noen av de deklarerte metodene i filen. Den klasse gjennomføring fil vil vanligvis ha en linje for å inkludere den tilhørende topptekstfilen (se eksempler nedenfor).
Eksempel i C ++
Et eksempel kan være å ha en klasse som heter ExampleClass . Overskriftsfilen til denne C ++ filen vil bli kalt "eksempel_klasse.h" og implementeringsfilen vil være "eksempel_klasse.cc".
Et eksempel på strukturen til example_class.cc vil se slik ut:
#include "example_class.h"
ExampleClass::ExampleClass() = default;
void ExampleClass::AddSomething(int k) {
...
}
I dette eksempelet har implementeringen for funksjonene blitt utelatt, men funksjonene må erklæres i example_class.h som dette:
#include <string>
class ExampleClass {
public:
ExampleClass(); // Constructor.
void AddSomething(int k);
private:
std::string name_;
};
Eksempel i mål-C
Et annet eksempel på hvordan en klasseimplementeringsfil ville være strukturert, kan sees med Objective-C , som brukes i iOS- programmering. Dette eksemplet vil bruke "ExampleClass". En bemerkelsesverdig forskjell mellom C ++ og Objective-C når du bruker disse implementeringsfilene, er utvidelsene som brukes på slutten av filene. I C ++ vil det være .cpp og i Objective-C vil det være .m , men begge vil bruke den samme .h- utvidelsen for topptekstfilen (e) som vist i eksemplet nedenfor.
Dette er et eksempel på ExampleClass.h i Objective-C :
#import <UIKit/UIKit.h>
@interface ExampleClass : NSObject {
// instance variable declarations go here
}
- (NSString*) name;
@end
Dette er et eksempel på klassens implementeringsfil Exampleclass.m i Objective-C :
#import "ExampleClass.h"
@implementation ExampleClass
- (NSString*) name {
return @"…";
}
@end