stringtranslate.com

Файл реализации класса

В объектно - ориентированном программировании файл реализации класса часто используется для хранения кода реализации метода (ов) класса . Языки программирования, такие как C++ и Objective-C, используют эти файлы реализации, чтобы разделить интерфейс и реализацию этих методов. [1]

Мотивация

Используя эту структуру, также создается файл определения класса , содержащий объявление класса и его членов. Если определение класса включено и файл реализации его методов доступен, пользователь может создать экземпляр объекта класса . Цель этой структуры — скрыть код реализации, но позволить пользователю просматривать проект. [2] [3]

Пользователи используют общедоступный интерфейс объекта , чтобы максимально упростить создание объектов, гарантируя, что клиентский код не отвлекает пользователя ненужными деталями реализации класса. [4] Это дает пользователю информацию, необходимую для эффективного использования класса, но не позволяет ему или ей повредить скомпилированный код. [5]

Структура файла реализации класса

Файл реализации используется в программировании на C++ при создании определения класса для отделения интерфейса от реализации. В заголовочном файле будут объявлены все функции-члены (методы) и методы данных (поля), которые есть в классе. [6] [7] [8]

Файл реализации будет содержать фактическое определение или исходный код методов, объявленных в заголовочном файле . Этот файл может начинаться с блока заголовка, который содержит комментарии, описывающие цель определенного класса и любые подробности о создании фактического файла, такие как автор файла и дата создания файла. [9] Он также может включать любые библиотеки из стандартной библиотеки C++ , которые будут использоваться любым из объявленных методов в файле. В файле реализации класса обычно есть строка для включения связанного файла заголовка (см. примеры ниже).

Пример на С++

Примером может быть класс с именем ExampleClass. Файл заголовка этого файла C++ будет называться «example_class.h», а файл реализации — «example_class.cc». [10] [11]

Пример структуры example_class.cc будет выглядеть так:

#include "example_class.h" ПримерКласс :: ПримерКласс () = по умолчанию ;  void exampleClass::AddSomething ( int k ) { ... }    

В этом примере реализация функций опущена, но функции должны быть объявлены в example_class.h следующим образом: [12]

#include <строка> класс ПримерКласс { общественный : ПримерКласс (); // Конструктор. void AddSomething ( int k );         частный : std :: строка name_ ; };   

Пример в Objective-C

Другой пример того, как будет структурирован файл реализации класса, можно увидеть на Objective-C , который используется в программировании iOS . [13] В этом примере будет использоваться «ExampleClass». Заметное различие между C++ и Objective-C при использовании этих файлов реализации заключается в расширениях, используемых в конце файлов. В C++ это будет .cpp [14] , а в Objective-C.m , [15] , но оба будут использовать одно и то же расширение .h для своих заголовочных файлов [16] [17], как показано в пример ниже.

Это пример exampleClass.h в Objective-C :

#import <UIKit/UIKit.h>@interface  exampleClass  : NSObject  { // здесь находятся объявления переменных экземпляра } - ( NSString * ) name ; @конец   

Это пример файла реализации класса exampleclass.m в Objective-C :

#import "ExampleClass.h"@implementation  SampleClass -  ( NSString * )  name { return @"…" ; } @конец   

Смотрите также

Рекомендации

  1. ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации на C++». АККУ . Проверено 7 мая 2013 г.
  2. ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации на C++». АККУ . Проверено 7 мая 2013 г.
  3. Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  4. ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации на C++». АККУ . Проверено 7 мая 2013 г.
  5. ^ «Что можно и чего нельзя делать в C++» . Проекты Хрома . Проверено 7 мая 2013 г.
  6. ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
  7. ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации на C++». АККУ . Проверено 7 мая 2013 г.
  8. ^ Фебил Чако Таникал (2009). «Как определить класс шаблона в файле .h и реализовать его в файле .cpp». Код проекта . Проверено 7 мая 2013 г.
  9. ^ «Файл реализации в программировании на C++». ITechTalk . Проверено 7 мая 2013 г.
  10. ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
  11. Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  12. ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
  13. Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  14. ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
  15. Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  16. ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
  17. Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.

Внешние ссылки