Объектно-ориентированное программирование
Константы
Поточный ввод-вывод
Указатель void
Функции
Динамическое выделение памяти
Абстрактные типы данных
Сравнение классов и структур
Область видимости класса
Статические члены класса
Ссылки
Конструкторы и деструкторы
Неявный указатель this
Дружественные функции
Перегрузка операций
Наследование
Виртуальные функции
Множественное наследование
Параметрический полиморфизм
Работа с файлами
Аргументы функции main
Обработка исключительных ситуаций
Литература
Язык С++ возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в Bell Labs над задачами теории очередей, он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки объемного программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки объемного программного обеспечения. Страуструп дополнил язык C возможностями работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C).
При создании C++ Бьёрн Страуструп ставил цели:
- Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
- Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
- Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
- Максимально сохранить совместимость с С: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
- Избегать особенностей, которые зависят от платформы или не являются универсальными.
- «Не платить за то, что не используется» — неиспользуемые языковые средства не должны приводить к снижению производительности программ.
- Не требовать сложной среды программирования.
Все основные операции, операторы, типы данных языка Си присутствуют в С++. Некоторые из них усовершенствованы и добавлены принципиально новые конструкции, которые и позволяют говорить о С++ как о новом языке, а не просто о новой версии языка
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cmath>
using namespace std;
int main() {
int N;
double* array;
cout << "Enter the N:";
cin >> N;
if (N > 0) {
array = new double[N];
for (int i = 0; i < N; i++) {
cout << "array[" << i << "]=";
cin >> array[i];
}
}
else {
cout << "Wrong N!" << endl;
}
}
А потом сравнить значение элемента с а и b. Если удовлетворяет, записываем следующим с начала массива, если нет - с конца (если к порядку элементов нет требований)