Файл реализации класса
В объектно-ориентированном программировании файл реализации класса используется для хранения кода реализации метода (ов) класса часто . Языки программирования, такие как 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
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации в C++» . АККУ . Проверено 7 мая 2013 г.
- ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации в C++» . АККУ . Проверено 7 мая 2013 г.
- ^ Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0 .
- ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации в C++» . АККУ . Проверено 7 мая 2013 г.
- ^ «Что нужно и чего нельзя делать в C++» . Проекты Хрома . Проверено 7 мая 2013 г.
- ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
- ^ Алан Гриффитс (2005). «Разделение интерфейса и реализации в C++» . АККУ . Проверено 7 мая 2013 г.
- ^ Фебил Чако Таникал (2009). «Как определить класс шаблона в файле .h и реализовать его в файле .cpp» . Код проекта . Проверено 7 мая 2013 г.
- ^ «Файл реализации в программировании на C++» . ITechTalk . Проверено 7 мая 2013 г.
- ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
- ^ Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0 .
- ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
- ^ Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0 .
- ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
- ^ Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0 .
- ^ «Введение в классы C++» . Проверено 7 мая 2013 г.
- ^ Нойберг, Мэтт (26 мая 2011 г.). «Глава 4.3. Заголовочный файл и файл реализации». Программирование iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0 .