- •1) Структурные типы данных и переменные этих типов .-
- •2) Передача структурных переменных функциям .-
- •3)Указатели на структурные переменные .
- •4) Массивы структурных переменных .
- •6)Поля битов. Средство typedef-
- •7) Понятие макроподстановки .
- •8) Включение файлов .
- •9)Условная компиляция.
- •12)Обработка двоичных файлов . Последовательный и произвольный доступ.
- •2)Произвольный доступ.
- •13)Аргументы используемые по умолчанию .-
- •14)Использование ссылок .
- •15)Встроенные функции.-
- •16)Операция разрешения видимости .(::)
- •17)Пространства имен.
- •18)Перегруженные функции.-
- •20)Определение классов.
- •21)Элементы класса.
- •22) Способы доступа к элементам класса .
- •23) Конструктор и деструктор.
- •24) Конструктор копии . Операция присваивания.-
- •25) Преобразование объектов класса в другие типы и их получение из других типов .
- •26)Перегрузка операций .
- •27)Дружественные функции.
- •28)Наследование классов .
- •29)Обработка исключительных ситуаций .
- •30)Визуалка.
15)Встроенные функции.-
В Си++ при определении функции можно использовать слово inline , оно предписывает компилятору помещать расширение тела функции везде , где происходит обращение к ней вместо того , чтобы генерировать код вызова .
Обычно встроенными делаются малые по размеру функции , так как их использование делает текст программы больше , хотя такая программы выполняется быстрее. На содержимое функции , объявляем как inline сущ. список ограничений , так не допускается inline для функций принимающих оператор цикла , операторы switch и goto можно . Кроме того определение встроенной функции должно обязательно предшествовать ее вызову . Кроме того компилятор может без всякого предупреждения проигнорировать inline .
16)Операция разрешения видимости .(::)
В языке Си локальная переменная имеет более высокий приоритет , Си++ позволяет получить доступ к глобальной переменной в пределах области действия локальной . Для этого к имени переменной в любой операции следует применять приставку ::.
#include <stdio.h>
Int a=10;
Void main (void){
Int a=100;
If (a>0){
Int a=1000;
Printf (“a=%d\n”,a);
Printf (“a=%d\n”,a++);}}
17)Пространства имен.
Язык Си++ позволяет разрешать конфликты между разными переменными с одним именем , которые происходят из-за участия в разработке большого числа программистов . Речь идет о глобальных переменных , так как конфликты между локальными и глобальными разрешаются в пользу локальных . Проект можно разбить на части определив для этих частей различные пространства имен. Для определения пространств имен используют следующий синтаксис :
Namespace имя {…}
Для явного обращения к переменной из конкретного пространства имен используют префикс с названием соответствующего пространства имен и операцией разрешения видимости .
Namespace sonya {
Int x;
Namespace sonya1{
Int x;}}
T=sonya::sonya1::x+2;
Для доступа к элементам конкретного пространства имен используют соответствующие приставки , либо используют конструкцию using в двух различных формах . если элемент некоторого пространства имен объявляется при помощи using , то все ссылки на этот элемент без приставок будут соответствовать с пространством имен указанных объявлений .
Namespace AAA {int Fun (int I){return I;}}
Namespace BBB {int Fun (int i){return i*I;}}
Void main (void) {using BBB::Fun;
Int x=7,y;
Y=Fun(x)
Printf (“%d\n”,y);}
Вторая форма использования using : using namespace имя.
В этом случае указанное пространство имен будет приниматься по умолчанию без указания префиксов , если используются локальные переменные с совпадающими именами.
Namespace A1{int x=11; int y=111; int w=1111;}
Namespace A2{int x=22; int y=222; int z=2222;}
Void main (void)
{using namespace A1;
Using namespace A2;
Using A2::x;
Printf (“x=%d;y=%d;z=%d;w=%d”,x,A1::y,::z,w);}
В итоге программы выведет : x=22,y=111,z=2222,w=1111
18)Перегруженные функции.-
В языке Си существует правило , что каждая функция должна иметь уникальное имя , а в Си++ существует возможность определения функции с одинаковыми именами , но различными типами аргументов на входе . Эта способность позволяет использовать одноименные функции схожих действий , которые необходимо произвести над переменными различных типов. За счет этого повышается удобочитаемость программы . Компилятор выполняет нужную функцию по соответствию аргументов .
Void showmes (int nom)
{printf (“message:%s\n”,spisok[nom]);}
Void showmes (char *msg)
{printf (“message:%s\n”,msg);}
Возможность перегрузки объясняется тем , что для внутреннего употребления компилятор добавляет несколько символов , показывающих тип и порядок параметров воспринимаемых функций.
Функции не могут быть перегружены , если их параметры различаются только применением const или использованием ссылки , так же не могут быть перегружены функции отличающиеся только типом возвращаемого значения .
19)Особенности описания переменных в программах на Си++-
В языке Си локальные переменные должны определяться в начале блока . В Си++ можно определять в любом месте . Это полезно тем , то переменную можно описать в непосредственной близости от первого места ее использования , кроме того модификатор const , который в Си запрещает изменять переменную после инициализации в Си++ делает это переменную истинно константным выражением , что позволяет использовать ее в любом месте программы , где разрешено использование константы .В Си++ имя структурного типа при описании принято использовать без слова struct .