Jump to content

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

(Перенаправлено из реализации метода )

В объектно-ориентированном программировании файл реализации класса используется для хранения кода реализации метода (ов) класса часто . Языки программирования, такие как 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"

ExampleClass::ExampleClass() = default;

void ExampleClass::AddSomething(int k) {
   ...
}

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

#include <string>

class ExampleClass {
 public:
  ExampleClass();  // Constructor.
  void AddSomething(int k);

 private:
  std::string 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 {
    // instance variable declarations go here
}
- (NSString*) name;
@end

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

#import "ExampleClass.h"

@implementation ExampleClass
- (NSString*) name {
    return @"…";
}
@end

См. также

[ редактировать ]
  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 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d1d8e8a4bbd544ab49a97c38c0db4af1__1703961480
URL1:https://arc.ask3.ru/arc/aa/d1/f1/d1d8e8a4bbd544ab49a97c38c0db4af1.html
Заголовок, (Title) документа по адресу, URL1:
Class implementation file - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)