"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора

// header.h

extern char* prog_name;
extern void f();

В файле main.c находится главная программа:

// main.c

#include "header.h"
char* prog_name = "дурацкий, но полный";
main()
{
f();
}

а файл f.c печатает строку:

- стр 32 -

// f.c

#include
#include "header.h"
void f()
{
cout << prog_name << "\n";
}

Скомпилировать и запустить программу вы можете например так:

$ CC main.c f.c -o silly
$ silly
дурацкий, но полный
$

1.7 Классы

Давайте посмотрим, как мы могли бы определить тип потока вывода
ostream. Чтобы упростить задачу, предположим, что для буферизации
определен тип streambuf. Тип streambuf на самом деле определен в
, где также находится и настоящее определение ostream.
Пожалуйста, не испытывайте примеры, определяющие ostream в этом и
последующих разделах; пока вы не сможете полностью избежать
использования , компилятор будет возражать против
переопределений.
Определение типа, определяемого пользователем (который в C++
называется class, т.е. класс), специфицирует данные, необходимые
для представления объекта этого типа, и множество операций для
работы с этими объектами. Определение имеет две части: закрытую