История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2017-11-17 | 260 |
5.00
из
|
Заказать работу |
|
|
(в добавление к классам):
1. шаблоны;
2. встроенные функции;
3. аргументы по умолчанию;
4. перегрузка функций;
5. пространства имен;
6. явное разрешение области видимости (операция::);
7. обработка исключений;
8. определение типа во время выполнения.
Для определения того, каким компилятором должна компилироваться программа — С или C++, — можно пользоваться макросом _cplusplus.
Заголовочные файлы.
Традиционно все заголовочные файлы имели расширение .h.
Таким образом, реализации C++ вводили заголовочные файлы, такие как <map.h> и <iostream.h>. Из соображений совместимости большинство реализаций по-прежнему так и делают.
Когда комитету по стандартам понадобились заголовочные файлы для новых версий стандартных библиотек и для добавляемых возможностей библиотеки, именование этих заголовочных файлов стало проблемой. Использование старых имен с расширением .h породило бы трудности с совместимостью.
И было решено для имен стандартных заголовочных файлов отказаться от суффикса .h. Он все равно избыточен, поскольку обозначение < > и так указывает, что речь идет об имени стандартного заголовочного файла.
Таким образом, стандартная библиотека предоставляет заголовочные файлы без расширения, такие как <iostream> и <тар>.
Объявления в этих файлах располагаются в пространстве имен std. Устаревшие заголовочные файлы располагают свои объявления в глобальном пространстве имен и используют расширение h.
Пример:
#include<iostream>
Int main ()
{ std::cout«"Здравствуй, мир\\п"; }
Если не удается скомпилировать, используем традиционную версию:
#include<iostream.h>
Int main ()
{ cout«"Здравствуй, мир \\ п"; }
Стандартная библиотека.
|
Реализации C++, предшествовавшие стандарту, могут не иметь некоторых частей стандартной библиотеки.
В большинстве из них будут потоки ввода/вывода, нешаблонный класс complex, различные строковые классы и стандартная библиотека С. Однако могут отсутствовать ассоциативные массивы (тар), списки (list), valarray и т. д. В таких случаях пользуйтесь доступными библиотеками (как правило, являющимися собственностью той или иной фирмы), которые бы позволили впоследствии перейти к стандарту при обновлении вашей реализации. Обычно лучше пользоваться нестандартными строками, списками и ассоциативными массивами, чем при отсутствии этих классов в стандартной библиотеке возвращаться к программированию в стиле С.
Ранние реализации стандартной библиотеки были неполными.
Советы для реализации правильного кода из С в С++:
1. Для изучения C++ используйте самую полную из доступных вам реализаций стандартного C++;.
2. При преобразовании программы с С на C++ сначала убедитесь, что последовательно используются объявления функций (прототипы) и стандартные заголовочные файлы.
3. При преобразовании программы с С на C++ переименуйте переменные С, которые совпадают с ключевыми словами C++;.
4. При преобразовании программы с С на C++ замените все вызовы
malloc () на new.
5. При преобразовании программы с С на C++ нет неявного преобразования от типа int к перечислениям. При необходимости используйте явное преобразование типов.
6. Средства из пространства имен std определяются в заголовке без суффикса (т. е. std::cout объявлена в <iostream>).
Старые реализации содержат средства стандартной библиотеки в глобальном пространстве имен, объявленные в заголовочных файлах с суффиксом h (т. е. ::cout объявлена в <iostream.h>).
7. Используйте <string> для доступа к std:<string> (<string.h> содержит функции для строк в стиле С).
8. Для каждого стандартного заголовочного файла языка С <X.h>, который помещает имена в глобальное пространство имен, заголовочный файл <Х> помещает имена в пространство имен std.
|
9. Многие системы содержат заголовочный файл "String.h", определяющий строковый тип. Отметим, что такие строки отличаются от типа string из стандартной библиотеки.
10. Предпочитайте стандартные средства нестандартным.
11. Используйте extern "С" при объявлении С-функции.
Стандартная библиотека С.
Язык Си был создан в AT&T’s Bell Laboratories начале 1970-х. В 1970-е язык программирования С пользовался невероятной популярностью. Множество университетов и организаций начали создание собственных вариантов языка, более подходящих для собственных нужд. Язык программирования С до стандартизации не обеспечивал встроенной функциональности (например отсутствовала операция ввода-вывода). С началом 1980-х проблемы совместимости между различными реализациями языка Си стали очевидными. Для поддержки функциональности требовалась стандартная библиотека языка С.
В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для принятия стандарта языка С, известный как «ANSI С». Эта работа вылилась в создание так называемого стандарта C89 в 1989 году. Часть итогового стандарта была набором библиотек, названная Стандартная библиотека ANSI С.
Стандартную библиотеку функций языка С можно разделить на две категории:
1. функции, которые имеются в библиотеке любой системы программирования языка С для различных операционных систем и различных архитектур компьютеров.
2. функции, которые являются уникальными в рамках какой-либо системы программирования, или обеспечивают доступ к специфическим возможностям конкретной операционной системы, или связаны с конкретной архитектурой компьютера.
Функции первой категории образуют переносимое ядро библиотеки; программы, в которых используются только такие библиотечные функции, могут быть перенесены в другую систему программирования, другую операционную систему и/или на другой тип архитектуры компьютеров с наименьшими затратами. Плата за универсальность и переносимость — невозможность воспользоваться специфическими средствами, предоставляемыми конкретной вычислительной средой.
Функции второй категории предоставляют возможность получить доступ к функциям ядра данной операционной системы, к внутренним структурам данных операционной системы, к регистрам используемых аппаратных устройств. Кроме того, ко второй категории относятся функции, которые добавлены в библиотеку, исходя из личных привязанностей разработчиков конкретной системы программирования — как им видится удобный набор средств для разработки различных алгоритмов. В современных системах программирования С в рамках общей тенденции к стандартизации такие необоснованные расширения библиотек сокращаются.
|
К сожалению, наборы функций второй категории не согласованы даже для различных систем программирования в рамках одной операционной системы на одном типе архитектур компьютеров. Библиотечные функции, обеспечивающие интерфейс для вызова одной и той же функции операционной системы, могут иметь не только разные параметры, но и разные названия.
Стандарт ANSI.
Стандартная библиотека ANSI Си состоит из 24 заголовочных файлов, каждый из которых можно подключать к программному проекту при помощи одной директивы. Каждый заголовочный файл содержит объявления одной или более функций, определения типов данных и макросы.
Библиотека обеспечивает поддержку основного набора математических функций, обработку строк, конвертацию типов, файловый и консольный ввод-вывод.
Она не содержит стандартный набор «контейнерных типов» как стандартная библиотека шаблонов языка C++, компоненты для работы с графическим пользовательским интерфейсом (GUI), сетью и прочей разнообразной функциональности.
Главным преимуществом маленькой стандартной библиотеки является упрощение работы с окружением ANSI Си по сравнению с другими языками, а следовательно и упрощение портирования программ на языке Си на новые платформы.
|
|
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!