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

  1. ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
  2. ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
  3. ^ 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)
  4. ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
  5. ^ „C ++ úkoly a nedělat“. https://www.chromium.org/developers/coding-style/cpp-dos-and-donts: Chromové projekty. Citováno 2013-05-07.
  6. ^ „Ú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)
  7. ^ Alan Griffiths (2005). "Oddělovací rozhraní a implementace v C ++". http://accu.org/index.php/journals/: ACCU. Citováno 2013-05-07.
  8. ^ 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)
  9. ^ „Implementační soubor v programování v C ++“. http://www.itechtalk.com/: ITechTalk. Citováno 2013-05-07.
  10. ^ „Ú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)
  11. ^ 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)
  12. ^ „Ú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)
  13. ^ 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)
  14. ^ „Ú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)
  15. ^ 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)
  16. ^ „Ú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)
  17. ^ 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)

externí odkazy