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