Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тех прог.doc
Скачиваний:
38
Добавлен:
14.11.2019
Размер:
3.59 Mб
Скачать

Стандартные пространства имен

В C++ можно использовать библиотеки функций языка Си и соответствующие заголовочные файлы, например, math.h, stdlib.h, stdio.h (заголовочный файл библиотеки ввода/вывода языка Си) и другие. Для собственных библиотек языка С++ заголовочные файлы сначала получили расширение .h. Позднее в C++ было добавлено понятие пространства имен и было решено поместить все имена из стандартных библиотек в пространство имен std. Для этого пришлось изменить заголовочные файлы – у них убрали расширение .h. Таким образом, вместо iostream.h появился iostream, но все имена в нем находятся в пространстве имен std. При использовании файла iostream это надо учитывать, например,

#include <iostream>

void main()

{

std::cout << ”Hello, ”;

std::cout << ”World!” << std::endl;

std::cin.get();

}

Чтобы не писать перед именами квалификатор std, можно использовать директиву using:

#include <iostream>

using namespace std;

void main()

{

cout << ”Hello, World!” << endl;

cin.get();

}

Чтобы можно было выполнять старые программы в новых средах разработки, старые версии заголовочных файлов также оставлены. Приводимые в данной книге программы оформлены, в основном, в старом стиле. При выполнении в новых средах их можно переписать в новом стиле, заменив директиву

#include <iostream.h>

на

#include <iostream>

using namespace std;

Некоторые заголовочные файлы языка Си были преобразованы в файлы C++, например, math.h превратился в cmath. Здесь префикс c указывает на происхождение данных файлов из языка Си. Такие файлы могут уже включать элементы, не относящиеся к Си, например, namespace std.

Задачи 186-189. Работа со стеком

  1. Напишите программу, которая печатает содержание входного файла, выводя символы каждой строки в обратном порядке. Для размещения символов очередной строки используйте стек.

  2. Напишите программу для работы со стеком целых чисел. Помещайте вводимые числа в стек, найдите сумму чисел, помещенных в стек, максимальное число в стеке.

  3. Напишите программу для работы со стеком целых чисел. Программа должна помещать вводимые целые числа в стек. При вводе знаков арифметических операций +, -. *, / программа должна брать из стека два числа и, произведя над ними соответствующую операцию, помещать результат в стек. Нажатие некоторой клавиши, например w или W, должно приводить к печати значения из вершины стека без его удаления из стека.

  4. Напишите программу для работы со стеком из строк символов. Такой стек можно реализовать в виде массива указателей на строки, память под которые выделяется динамически. Организуйте с помощью такого стека печать строк входного файла в обратном порядке.

Глава 17.Перегрузка операторов

В языке C++ имеется возможность определять функции, имена которых совпадают с именами встроенных операторов: +, -, *, / и т.д. Такие функции определяются с ключевым словом operator. Они называются функциями-операторами. При вызове таких функций достаточно указывать только знак оператора, например, (+). Как правило, в функциях-операторах выполняются действия, которые отражаются знаком используемого оператора, что делает программы более наглядными и понятными.

Синтаксис объявления и использования функций-операторов приведен в следующей программе.