Soubor implementace třídy - Class implementation file
v objektově orientované programování, a soubor implementace třídy se často používá k obsazení implementačního kódu pro metody) a třída. Tento soubor se také označuje jako a zdrojový soubor.[Citace je zapotřebí ] Programovací jazyky jako C a C ++ využívají tyto implementační soubory k oddělení rozhraní a implementace těchto metod.[1]
Motivace
Pomocí této struktury, a definice třídy vytvoří se také soubor obsahující deklaraci třídy a jejích členů. Pokud byla zahrnuta definice třídy a je k dispozici implementační soubor pro její metody, uživatel může vytvořit instanci an objekt třídy. Účelem této struktury je udržet implementační kód skrytý, ale umožnit uživateli zobrazit návrh.[2][3]
Uživatelé využívají veřejné rozhraní objekt aby bylo vytváření objektů co nejjednodušší, zajištění toho, aby klientský kód nerozptyloval uživatele zbytečnými podrobnostmi o implementaci třídy.[4]To umožňuje uživateli informace potřebné k efektivnímu použití třídy, ale brání mu v poškození kompilovaného kódu.[5]
Struktura souboru implementace třídy
Soubor implementace se používá v Programování v C ++ při vytváření definice třídy rozdělit rozhraní od implementace. The hlavičkový soubor by prohlásil všechny členské funkce (metody) a datové metody (pole), která třída má.[6][7][8]
Soubor implementace bude obsahovat skutečnou definici nebo zdrojový kód metod deklarovaných v hlavičkový soubor. Tento soubor může začínat blokem záhlaví, který poskytuje komentáře, které popisují účel definované třídy a veškeré podrobnosti o vytvoření skutečného souboru, jako je autor souboru a datum vytvoření souboru.[9]Může také zahrnovat jakékoli knihovny z C ++ standardní knihovna který bude použit některou z deklarovaných metod v souboru. The soubor implementace třídy bude obvykle obsahovat řádek, který bude obsahovat přidružený soubor záhlaví (viz příklady níže).
Příklad v C ++
Příkladem může být mít třídu s názvem ExampleClass
. Soubor záhlaví tohoto souboru C ++ by měl název „example_class.h“ a soubor implementace by byl „example_class.cc“.[10][11]
Příklad struktury example_class.cc bude vypadat takto:
#zahrnout „example_class.h“ExampleClass::ExampleClass() = výchozí;prázdnota ExampleClass::Přidej něco(int k) { ...}
V tomto příkladu byla implementace pro funkce vynechána, ale funkce musí být deklarovány v example_class.h takhle:[12]
#zahrnout <string>třída ExampleClass { veřejnost: ExampleClass(); // Konstruktor. prázdnota Přidej něco(int k); soukromé: std::tětiva název_; };
Příklad v Objective-C
Další příklad toho, jak by byl strukturován soubor implementace třídy, lze vidět na Cíl-C, který se používá v iOS programování.[13]V tomto příkladu se použije „ExampleClass“. Pozoruhodný rozdíl mezi C ++ a Cíl-C při použití těchto implementačních souborů jsou přípony použity na konci souborů. V C ++ to bude .cpp[14]a v Cíl-C bude to .m,[15]ale oba budou používat stejné .h rozšíření pro jejich hlavičkové soubory[16][17]jak ukazuje následující příklad.
Toto je příklad ExampleClass.h v Cíl-C:
#import @rozhraní ExampleClass : NSObject { // deklarace proměnných instance najdete zde}- (NSString*) název;@konec
Toto je příklad implementační soubor třídy Exampleclass.m v Cíl-C:
#import "ExampleClass.h"@implementace ExampleClass- (NSString*) název { vrátit se @"…";}@konec
Viz také
Reference
- ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
- ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
- ^ Neuberg, Matt (26. května 2011). "Kapitola 4.3 Záhlaví a implementační soubor". Programování iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.CS1 maint: ref = harv (odkaz)
- ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
- ^ „C ++ úkoly a nedělat“. https://www.chromium.org/developers/coding-style/cpp-dos-and-donts: Chromové projekty. Citováno 2013-05-07.
- ^ „Úvod do tříd C ++“. http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/. Citováno 2013-05-07.CS1 maint: umístění (odkaz)
- ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
- ^ Febil Chacko Thanikal (2009). "Jak definovat třídu šablony v souboru .h a implementovat ji do souboru .cpp". http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-a-h-file-and-imp: Projekt kódu. Citováno 2013-05-07.CS1 maint: umístění (odkaz)
- ^ „Implementační soubor v programování v C ++“. http://www.itechtalk.com/: ITechTalk. Citováno 2013-05-07.
- ^ „Úvod do tříd C ++“. http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html. Citováno 2013-05-07.CS1 maint: umístění (odkaz)
- ^ Neuberg, Matt (26. května 2011). "Kapitola 4.3 Záhlaví a implementační soubor". Programování iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.CS1 maint: ref = harv (odkaz)
- ^ „Úvod do tříd C ++“. http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html. Citováno 2013-05-07.CS1 maint: umístění (odkaz)
- ^ Neuberg, Matt (26. května 2011). "Kapitola 4.3 Záhlaví a implementační soubor". Programování iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.CS1 maint: ref = harv (odkaz)
- ^ „Úvod do tříd C ++“. http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/. Citováno 2013-05-07.CS1 maint: umístění (odkaz)
- ^ Neuberg, Matt (26. května 2011). "Kapitola 4.3 Záhlaví a implementační soubor". Programování iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.CS1 maint: ref = harv (odkaz)
- ^ „Úvod do tříd C ++“. http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/. Citováno 2013-05-07.CS1 maint: umístění (odkaz)
- ^ Neuberg, Matt (26. května 2011). "Kapitola 4.3 Záhlaví a implementační soubor". Programování iOS 4. O’Reilly Media, Inc. ISBN 978-1-4493-8843-0.CS1 maint: ref = harv (odkaz)