Чтение онлайн

на главную

Жанры

C++. Сборник рецептов

Когсуэлл Джефф

Шрифт:

Прежде чем вы начнете прорабатывать рецепты в этой главе, создайте четыре расположенные на одном уровне директории johnpaul, georgeringo, hellobeatles и binaries. В первые три директории поместите исходные файлы из примеров 1.1, 1.2 и 1.3. Четвертая директория будет использоваться для двоичных файлов, генерируемых IDE.

Исходный код libjohnpaul представлен в примере 1.1.

Открытый интерфейс libjohnpaul состоит из одной функции
johnpaul
, объявленной в заголовочном файле johnpaul.hpp. Функция
johnpaul
отвечает за печать:

John, Paul,

на консоль. Реализация

johnpaul
разбита на два. исходных файла — john.cpp и paul.cpp, каждый из которых отвечает за печать одного имени.

Пример 1.1. Исходный код libjohnpaul

johnpaul/john.hpp

#ifndef JOHN_HPP_INCLUDED

#define JOHN_HPP_INCLUDED

void john; // Печатает "John, "

#endif // JOHN _HPP_INCLUDED

johnpaul/john.cpp

#include <iostream>

#include "john.hpp"

void john {

 std::cout << "John, ";

}

johnpaul/paul.hpp

#ifndef PAUL_HPP_INCLUDED

#define PAUL_HPP_INCLUDED

void paul; // Печатает " Paul, "

#endif // PAUL_HPP_INCLUDED

johnpaul/paul.cpp

#include <iostream>

#include "paul.hpp"

void paul {

 std::cout << "Paul, ";

}

johnpaul/johnpaul.hpp

#ifndef JOHNPAUL_HPP_INCLUDED

#define JOHNPAUL_HPP_INCLUDED

void johnpaul; // Печатает "John, Paul, "

#endif // JOHNPAUL_HPP_INCLUDED

johnpaul/johnpaul.cpp

#include "john.hpp"

#include "paul.hpp"

#include "johnpaul.hpp"

void johnpaul {

 john;

 paul;

}

Исходный код libgeorgeringo представлен в примере 1.2. Открытый интерфейс libgeorgeringo состоит из одной функции

georgeringo
, объявленной в заголовочном файле georgeringo.hpp.
Как вы могли догадаться, функция
georgeringo
отвечает за печать:

George, and Ringo

на консоль. И снова реализация

georgeringo
разделена на два исходных файла — george.cpp и ringo.cpp.

Пример 1.2. Исходный код libgeorgeringo

georgeringo/george.hpp

#ifndef GEORGE_HPP_INCLUDED

#define GEORGE_HPP_INCLUDED

void george; // Печатает "George, "

#endif // GEORGE_HPP_INCLUDED

georgeringo/george.cpp

#include <iostream>

#include "george.hpp"

void george

 std::cout << "George, ";

}

georgeringo/ringo.hpp

#ifndef RINGO_HPP_INCLUDED

#define RINGO_HPP_INCLUDED

void ringo; // Печатает "and Ringo\n"

#endif // RINGO_HPP_INCLUDED

georgeringo/ringo.cpp

#include <iostream>

#include "ringo.hpp"

void ringo {

 std::cout << "and Ringo\n";

}

georgeringo/georgeringo.hpp

#ifndef GEORGERINGO_HPP_INCLUDED

#define GEORGERINGO_HPP_INCLUDED

// определите GEORGERINGO_DLL при сборке libgeorgeringo.dll

#if defined(_WIN32) && !defined(__GNUC__)

#ifdef GEORGERINGO_DLL

# define GEORGERINGO_DECL __declspec(dllexport)

#else

# define GEORGERINGO_DECL __declspec(dllimport)

#endif

#endif // WIN32

#ifndef GEORGERINGO_DECL

# define GEORGERINGO_DECL

#endif

// Печатает "George, and Ringo\n"

#ifdef __MWERKS__

# pragma export on

#endif

GEORGERINGO_DECL void georgeringo;

#ifdef __MWERKS__

# pragma export off

#endif

#endif // GEORGERINGO_HPP_INCLUDED

georgeringo/georgeringo.cpp

Поделиться:
Популярные книги

Особое назначение

Тесленок Кирилл Геннадьевич
2. Гарем вне закона
Фантастика:
фэнтези
6.89
рейтинг книги
Особое назначение

Шесть тайных свиданий мисс Недотроги

Суббота Светлана
Любовные романы:
любовно-фантастические романы
эро литература
7.75
рейтинг книги
Шесть тайных свиданий мисс Недотроги

Отмороженный 7.0

Гарцевич Евгений Александрович
7. Отмороженный
Фантастика:
рпг
аниме
5.00
рейтинг книги
Отмороженный 7.0

Прометей: Неандерталец

Рави Ивар
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Прометей: Неандерталец

Измена. Верни мне мою жизнь

Томченко Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верни мне мою жизнь

Кодекс Охотника. Книга XXIX

Винокуров Юрий
29. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXIX

Проиграем?

Юнина Наталья
Любовные романы:
современные любовные романы
6.33
рейтинг книги
Проиграем?

На границе империй. Том 10. Часть 2

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 10. Часть 2

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая

«Три звезды» миллиардера. Отель для новобрачных

Тоцка Тала
2. Три звезды
Любовные романы:
современные любовные романы
7.50
рейтинг книги
«Три звезды» миллиардера. Отель для новобрачных

Идеальный мир для Социопата

Сапфир Олег
1. Социопат
Фантастика:
боевая фантастика
рпг
постапокалипсис
6.17
рейтинг книги
Идеальный мир для Социопата

Огненный князь

Машуков Тимур
1. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь

Система Возвышения. Второй Том. Часть 1

Раздоров Николай
2. Система Возвышения
Фантастика:
фэнтези
7.92
рейтинг книги
Система Возвышения. Второй Том. Часть 1

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V