- •Понятие ооп. Причины появления ооп.
- •Концепции ооп. Инкапсуляция
- •Концепции ооп. Наследование
- •Концепции ооп. Полиморфизм
- •5.Роль типов данных и их становление
- •6.Этапы ооп.
- •8. Заголовочные файлы
- •13. Классы и объекты
- •14. Члены класса
- •15. Описание класса
- •30. Параметризованные функции
- •31. Перегрузка операции. Перегрузка унарных операторов
- •32. Перегрузка операции. Перегрузка бинарных операторов
- •33. Исключения и их обработка.
- •34. Общая хар-ка стандартной библиотеки шаблонов
- •35. Ввод-вывод с использованием потока stl
- •36. Фундаментальные типы и их соответствие cli размерным типам
- •43. Общая характеристика платформы .Net и библиотеки классов WinForms.
- •44. Укрупненная иерархия WinForms
- •45. Классы Object, Component.
8. Заголовочные файлы
Одним из простых способов достижения согласованности определений различных файлов является включение в исходные файлы программы заголовочных файлов с интерфейсной информацией. Директива #include "to-be-included" замещает себя содержимым файла "to-be-included", которым должен быть исходный текст на С++. Такое включение обычно делается препроцессором С++. Для включения файлов из стандартного каталога вместо кавычек используются угловые скобки "<" и ">". Пример: #include <stream.h> // из стандартного каталога #include "myheader.h" // из текущего каталога В заголовочном файле могут содержаться: Определения типов struct point {int x, y;}; Параметризованные типы template <class T> class V; Объявления функций extern int strlen(const char*); Описания встраиваемых функций inline char get() {return *p++}; Объявления данных extern int a; Описания констант const float pi = 3.14.1593; Перечисления enum bool {false, true}; Объявления имен class Matrix; Директивы включения #include <signal/h> Определения макросов #define Case break; case Комментарии /* проверка на конец файла */ Заголовочные файлы обычно имеют суффикс .h, а файлы, содержащие функции или определения данных - суффикс .с или .cpp.
9. Особенности языка с++,не связанные с ООП. Константы, параметры по умолчанию
В С++ спецификатор const может использовать для замены директивы #define. Значения объектов, которые объявлены как const не могут быть изменены. Спецификатор const определяет тип константы и позволяет компилятору убедиться, что она используется в контексте, где ее тип не вызовет конфликта. const true=1; const double pl=4*atan(1.); const int size=5000; char *const names=“FFF”; const char *Nam=“GGG”; names - это константный указатель на char, адрес не может быть изменен. Последнее объявление указывает, что строка “GGG” является константой. Указатель Nam не константа и может быть изменен.
Единственное отличие констант от переменных, что после инициализации их нельзя изменить. Константы удобны в следующих случаях. Вы хотите улучшить понимание своей программы для других, ведь смысловое имя более понятно чем какое-то число.
Если в вашей программе многократно используется некое число, например 7. Но в дальнейшем оно может изменится на другое. То легче один раз объявить константу и когда надо заменить один раз значение у константы.
константы
Константные ссылочные типы часто используются в качестве аргументов для функций, чтобы гарантировать не изменность данных.
10. Особенности языка с++,не связанные с ООП. Комментарии, описания, inline-подстановки
В С++ комментарии можно вводить одним из двух способов. • Символы /* начинают комментарий, заканчивающийся символами */. Вся эта последовательность символов эквивалентна символу пропуска (например, символу пробела). Символы // начинают комментарий, который заканчивается в конце строки, на которой они появились. Опять, вся последовательность символов эквивалентна пропуску. Символы // можно использовать для того, чтобы закомментировать символы /* или */, а символами /* можно закомментировать //.
Если часто повторяется обращение к очень маленькой функции, то вы можете начать беспокоиться о стоимости вызова функции. Обращение к функции члену не дороже обращения к функции не члену с тем же числом параметров (надо помнить, что функция член всегда имеет хотя бы один параметр), и вызовы в функций в C++ примерно столь же эффективны, сколь и в любом языке. Однако для слишком маленьких функций может встать вопрос о накладных расходах на обращение. В этом случае можно рассмотреть возможность спецификации функции как inline-подставляемой. Если вы поступите таким образом, то компилятор сгенерирует для функции соответствующий код в месте ее вызова. Семантика вызова не изменяется.
Вы можете указать, что вы хотите, чтобы функция была inline- подставляемой, поставив ключевое слово inline, или, для функции члена, просто включив определение функции в описание класса, как это сделано в предыдущем примере для size() и elem(). При хорошем использовании inline-функции резко повышают скорость выполнения и уменьшают размер объектного кода. Однако, inline- функции запутывают описания и могут замедлить компиляцию, поэтому, если они не необходимы, то их желательно избегать. Чтобы inline-функция давала существенный выигрыш по сравнению с обычной функцией, она должна быть очень маленькой.
11. Особенности языка с++,не связанные с ООП. Ссылки
О переменной variableName говорят, что это ссылка на тип. Она определяет местоположение в памяти инициализирующего выражения Init. Ссылка – это псевдоним или альтернативное имя переменной. Ссылку можно считать неизменяемым указателем, который заранее разыменован. Рассмотрим пример:
int y=16; int &x=y;
printf(“x=%d\n”,x);
y=12; printf(“x=%d\n”,x);
Результат работы x=16 x=12
Ссылочная переменная x определяет местоположение в памяти переменной y в инициализирующем выражении int &x=y. Переменная x обрабатывается как нормальная переменная типа int. При обращении к такой переменной нет необходимости в операции снятие ссылки. Функциональный эквивалент приведенного выше примера:
int y=16; int *x=&y;
printf(“x=%d\n”,*x);
y=12; printf(“x=%d\n”,*x);
Ссылочная переменная должна быть при объявлении инициализирована. Объявление int &x; недопустимо. Ссылки часто используются как формальные параметры в функциях. Это может быть полезно для создания функций, изменяющих полученные параметры.
12. Особенности языка с++ , не связанные с ООП. Перегрузка ,функции
Функция — это определенная группа операций с уникальным именем, которая может:
Вызываться по имени в любом месте программы.
Получать определенный набор значений из внешней программы в момент вызова.
Возвращать в качестве значения некоторый результат заранее заданного типа.
Также функцию можно рассматривать как операцию, созданную самим разработчиком.
Известный примером функции является main. Она автоматические вызывается при запуске программы.
Про перегрузку не нашла
