на консоль. Это приложение можно написать в виде единого исходного файла, но я разбил его на три модуля: статическую библиотеку
Исходный код johnpaul()
, объявленной в заголовочном файле johnpaul()
отвечает за печать:
John, Paul,
на консоль. Реализация johnpaul()
разбита на два. исходных файла —
#ifndef JOHN_HPP_INCLUDED
#define JOHN_HPP_INCLUDED
void john(); // Печатает "John, "
#endif // JOHN _HPP_INCLUDED
#include
#include "john.hpp"
void john() {
std::cout << "John, ";
}
#ifndef PAUL_HPP_INCLUDED
#define PAUL_HPP_INCLUDED
void paul(); // Печатает " Paul, "
#endif // PAUL_HPP_INCLUDED
#include
#include "paul.hpp"
void paul() {
std::cout << "Paul, ";
}
#ifndef JOHNPAUL_HPP_INCLUDED
#define JOHNPAUL_HPP_INCLUDED
void johnpaul(); // Печатает "John, Paul, "
#endif // JOHNPAUL_HPP_INCLUDED
#include "john.hpp"
#include "paul.hpp"
#include "johnpaul.hpp"
void johnpaul() {
john();
paul();
}
Исходный код georgeringo()
, объявленной в заголовочном файле georgeringo()
отвечает за печать:
George, and Ringo
на консоль. И снова реализация georgeringo()
разделена на два исходных файла —
#ifndef GEORGE_HPP_INCLUDED
#define GEORGE_HPP_INCLUDED
void george(); // Печатает "George, "
#endif // GEORGE_HPP_INCLUDED
#include
#include "george.hpp"
void george()
std::cout << "George, ";
}
#ifndef RINGO_HPP_INCLUDED
#define RINGO_HPP_INCLUDED
void ringo(); // Печатает "and Ringo\n"
#endif // RINGO_HPP_INCLUDED
#include
#include "ringo.hpp"
void ringo() {
std::cout << "and Ringo\n";
}
#ifndef GEORGERINGO_HPP_INCLUDED
#define GEORGERINGO_HPP_INCLUDED
// определите GEORGERINGO_DLL при сборке libgeorgeringo.dll
#if defined(_WIN32) && !defined(__GNUC__)
#ifdef GEORGERINGO_DLL