Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
s__ekzamen.docx
Скачиваний:
8
Добавлен:
18.12.2018
Размер:
113.34 Кб
Скачать

7. Перегруженные операции.

С++ позволяет переопределить действие большинства операций так, чтобы при использовании с объектами конкретного класса они выполняли заданные функции. Эта дает возможность использовать собственные типы данных точно так же, как стандартные. Обозначения собственных операций вводить нельзя. Можно перегружать любые операции , существующие в С++, за исключением:

?: :: # ## sizeof

Перегрузка операций осуществляется с помощью функций специального вида (функций-операций) и подчиняется следующим правилам:

сохраняются количество аргументов, приоритеты операций и правила ассоциации (справа налево или слева направо) по сравнению с использованием в стандартных типах данных;

нельзя переопределить операцию по отношению к стандартным типам данных;

функция-операция не может иметь аргументов по умолчанию;

функции-операции наследуются (за исключением =);

Функцию-операцию можно определить тремя способами: она должна быть либо методом класса, либо дружественной функцией класса, либо обычной функцией. В двух последних случаях функция должна принимать хотя бы один аргумент, имеющий тип класса, указателя или ссылки на класс (особый случай: функция-операция, первый параметр которой - стандартного типа, не может определяться как метод класса).

Функция-операция содержит ключевое слово operator, за которым следует знак переопределяемой операции :

тип operator операция ( список параметров) { тело функции }

8. Инструкция ветвления. (пример)

В с++ существует несколько видов условных операторов. Используются они в ситуация, когда в зависимости от происходящих событий нам надо выполнить различный код.

  • if (условие) {код}

  • if (условие) {код} else {код}

  • if (условие) {код} else if (условие2) {код} else if(условие3) {код}

  • switch (переменная) case "значение": {код; break;} default: {код;break;}

  • == - равно

  • != - не равно

  • < - больше

  • >- меньше

if (n%2==0) {

if (n>0)

n*=2; }

else

n-=1;

_____________________________

int year;

printf("Введите номер года: ");

scanf("%i", &year);

printf("Год %i - ");

if ((year%400)==0 || ((year%4)==0 && (year%100)!=0))

printf("високосный.\n");

else

printf("невисокосный.\n");

9. Инструкция switch()

Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:

switch ( выражение ) { [объявление] : [ case константное-выражение1]: [ список-операторов1] [ case константное-выражение2]: [ список-операторов2] : : [ default: [ список операторов ]] }

Пример:

int i=2; switch (i) { case 1: i += 2; case 2: i *= 3; case 0: i /= 2; case 4: i -= 5; default: ; }

10. Применение инструкции switch() для создания текстового меню.

Switch(){

Case 1: func1;

Case 2: func2;

Case 3: func3;

Default: func4;}

11. Инструкция цикла.

Цикл while

while

{команды}

Этот цикл выполняется до тех пор, пока условие в скобках истинно. Например, пока мышка живет, она встает в 8 утра, есть, ложится спать, опять просыпается, есть, смотрит кино, ложится спать. Или пока нам вводят числа с клавиатуры, мы выводим их квадрат.

Цикл for

for (int i=0;i<n;i++)

{команды}

Этот цикл выполняется, пока вторая часть, где условие i<n, не станет ложной.

В первой части мы объявляем счетчик, а в 3-ей мы как-то его изменяем. Цикл while является частным случаем цикла for.

for (;условие;) <==>while (условие)

Цикл do...while, в отличии от 2-х предыдущих позволяет выполнить цикл (при неверном условии) как минимум один раз, рассмотрим пример:

int i = 11;

do

{ cout << "Пирожок: " << i << endl;

++i; }

while (i <= 10);

cout << "Уф... чуть не лопнул " << endl;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]