C++. Сборник рецептов
Шрифт:
Исходный код libjohnpaul представлен в примере 1.1.
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
рейтинг книги
Прометей: Неандерталец
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Измена. Верни мне мою жизнь
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Кодекс Охотника. Книга XXIX
29. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Проиграем?
Любовные романы:
современные любовные романы
6.33
рейтинг книги
На границе империй. Том 10. Часть 2
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
«Три звезды» миллиардера. Отель для новобрачных
2. Три звезды
Любовные романы:
современные любовные романы
7.50
рейтинг книги
Идеальный мир для Социопата
1. Социопат
Фантастика:
боевая фантастика
рпг
постапокалипсис
6.17
рейтинг книги
Огненный князь
1. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Система Возвышения. Второй Том. Часть 1
2. Система Возвышения
Фантастика:
фэнтези
7.92
рейтинг книги
Мастер Разума V
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00