2.5. Включение встраиваемого файла
2.5. Включение встраиваемого файла
Проблема
Имеется несколько функций-членов или самостоятельных функций, которые требуется сделать встраиваемыми (inline), но вы не хотите определять их все в определении класса (или даже после него) в заголовочном файле. Это позволит хранить объявление и реализацию по отдельности.
Решение
Создайте файл .inl и с помощью #include включите его в конец своего заголовочного файла. Это эквивалентно помещению определения функции в конец заголовочного файла, но позволяет хранить объявление и определение раздельно. Пример 2.6 показывает, как это делается.
Пример 2.6. Использование встраиваемого файла
// Value.h
#ifndef VALUE_H__
#define VALUE_H__
#include <string>
class Value {
public:
Value (const std::string& val) : val_(val) {}
std::string getVal() const;
private:
std::string val_;
};
#include "Value.inl"
#endif VALUE_H__
// Value.inl
inline std::string Value::getVal() const {
return(val_);
}
Это решение не требует пояснений, #include заменяется на содержимое ее аргумента, так что здесь в заголовочный файл включается содержимое Value.inl. Следовательно, любой файл, включающий этот заголовочный файл, содержит определения встраиваемых функций, но вам не требуется загромождать объявление класса.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Установка размера файла, инициализация файла и разреженные файлы
Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла
17.2.4. Включение IP Forwarding
17.2.4. Включение IP Forwarding Разрешение пересылки IP устанавливается в файле /etc/sysconfig/network примерно так: FORWARD_IPV4=yes. При этом ваше ядро должно быть скомпилировано для поддержки IP_FORWARD.Для включения IP Forwarding введите команду:# echo "1" > /proc/net/ip_forwardВ некоторых дистрибутивах IP Forwarding
5.5.4. Включение Compiz
5.5.4. Включение Compiz После установки пакетов выберите команду меню Система> Параметры>Оформление>Эффекты рабочего стопа (см. рис. 5.34). Щелкните на кнопке Включить эффекты. Эффекты будут включены - вы сразу это увидите по эффекту прозрачности окон. Конфигуратор спросит
Включение
Включение Не все классы способны к агрегированию. Для того чтобы выставить неагрегируемые классы как часть индивидуальности другого объекта, необходимо, чтобы внешние объекты явно передавали вызовы методов внутренним объектам. Эта технология СОМ часто называется
Включение отображения
Включение отображения В этот момент обработчик событий Tick должен отобразить в панели toolStripStatusLabelClock текущее время, если значением по умолчанию члена-переменной DateTimeFormat является DateTimeFormat.ShowClock. Чтобы позволить пользователю переключаться между отображением даты и времени,
ВКЛЮЧЕНИЕ ФАЙЛА: #include
ВКЛЮЧЕНИЕ ФАЙЛА: #include Когда препроцессор "распознает" директиву #include, он ищет следующее за ней имя файла и включает его в текущий файл. Директива выдается в двух видах: #include <stdio.h> имя файла в угловых скобках#include "mystuff.h" имя файла в двойных
Включение файла
Включение файла Если функция задана как макроопределение, то можно директивой #include включить файл, содержащий ее определение. Часто подобные функции могут быть собраны в соответствующим образом названный заголовочный файл. Например, некоторые системы имеют файл
Включение файлов
Включение файлов Синтаксис:#include "имя пути"#include <имя пути>Директива #include включает содержимое исходного файла, <имя пути> которого задано, в текущий компилируемый исходный файл. Например, общие для нескольких исходных файлов определения именованных констант и
Включение mental ray
Включение mental ray Работа с визуализатором mental ray начинается еще на этапе текстурирования. Первый этап — моделирование — выполняется одинаково, независимо от того, каким визуализатором будет создавать конечный продукт. Уже на втором этапе — текстурировании — необходимо
Инсталляция встраиваемого сервера
Инсталляция встраиваемого сервера ! ! !ВНИМАНИЕ! Если вы раньше не использовали Firebird, то очень рекомендуется пропустить этот вариант, пока вы не приобретете опыт работы с сервером Firebird и "регулярными" клиентами. Вы ничего не потеряете, разрабатывая ваши первые приложения в
Возможности встраиваемого языка (ESQL)
Возможности встраиваемого языка (ESQL) Некоторые реляционные системы управления базами данных, включая Firebird, предоставляют возможность непосредственного включения операторов SQL в модули, написанные на языке программирования третьего поколения. Стандарт предоставляет
Включение поддержки ZFS
Включение поддержки ZFS Для практического использования ZFS on Linux перво-наперво необходимо обеспечить её поддержку в вашем дистрибутиве – ибо по причинам, описанным в предыдущей статье, сама собой она не поддержится ни в одном Linux’е.Как это сделать, зависит от дистрибутива.
2.4.4. Включение загрузки с DVD
2.4.4. Включение загрузки с DVD Чтобы загрузиться с установочного диска Windows, нужно изменить порядок загрузки в BIOS Setup (чтобы система загружалась с DVD, а не с жесткого диска). В случае со стационарным компьютером для входа в BIOS Setup обычно достаточно нажать клавишу <Del> сразу,
Первое включение
Первое включение Заветная кнопка находится всегда на передней панели системного блока. Она – самая крупная на этой панели, не ошибетесь.Наберите воздуха, почувствуйте торжественность момента… Пора! Жмите и смотрите на монитор!Ничего не видите? Не пугайтесь, так часто
Параметры встраиваемого проигрывателя Flash
Параметры встраиваемого проигрывателя Flash Встраиваемый проигрыватель Flash поддерживает довольно много параметров. В случае тега <OBJECT> одни параметры задаются как одноименный атрибут этого тега, а другие — с помощью тега <PARAM>. В случае тега <EMBED> все параметры