- •2.Операторы new, delete.
- •4. Перегрузка функций.
- •5. Ссылки. Назначение и особенности использования.
- •10. Классы и объекты. Члены классов. Атрибуты доступа.
- •11. Описание классов. Видимость и доступ к членам классов.
- •12. Функции-члены классов. Описание, вызов.
- •13. Инициализация объектов классов. Назначение, типы конструкторов.
- •14. Инициализация объектов классов. Описание конструкторов.
- •15. Особенности описания и использования конструкторов копирования.
- •16. Деструкторы. Назначение, описание, использование.
- •17. Пример описания конструктора копирования для класса со структурными членами-данными (массива).
- •24. Пример использования функции-друга.
- •25. Перегрузка операторов. Назначение, правила, способы.
- •26. Перегрузка операторов с использованием операторных-функций. Указатель this.
- •27. Перегрузка операторов с использованием дружественных функций.
- •28. Поразрядное копирование. Особенности перегрузки оператора присваивания.
- •29. Перегрузка операторов отношений. Примеры.
- •30. Перегрузка логических операторов. Примеры.
- •31. Перегрузка арифметических операторов. Примеры.
- •33. Перегрузка оператора ”[ ]” для класса со структурными членами-данными (массива).
- •37. Наследование. Конструкторы и деструкторы.
- •38. Наследование. Видимость и доступ к членам базовых и производных классов.
- •39. Статический (перегрузка операторов, функций, функций-членов, конструкторов) полиморфизм.
- •40. Пример описания класса на базе одиночного наследования.
- •41. Функции-шаблоны. Назначение, описание, использование.
- •42. Пример описания и вызова функции-шаблон для суммирования элементов массива.
- •45. Характеристика пространства имен.
- •46. Описание и использование пространства имен (на примере).
- •47. Понятие исключительная ситуация и способы обработки исключений.
- •50. 51.Синтаксис и использование команды try, catch. Варианты использования catch. Генерация исключений командой throw.
- •52. Варианты генерации и обработки исключений.
- •Istream iostrim ostream
- •Ifstream fstream ofstream
- •64. Пример создания и заполнения файла.
- •65. Пример открытия и чтения содержимого файла.
- •66. Пример заполнения файла записями (значение-значение, размещенными в полях 20 и 30 позиций, с прижатием соответственно влево и вправо).
40. Пример описания класса на базе одиночного наследования.
#include <string.h>
#include <stdio.h>
#include <iostream.h>
//класс неарифметического типа
class COffice
{
private: char m_namedok[30]; //название документа
int m_date[3]; //дата подписания
int m_kode; //код документа
public: void to_show(); //вывод содержимого объекта
COffice(); //конструктор по умолчанию
COffice(char*name, int*date, int); //конструктор с параметрами
COffice ( const COffice&); //конструктор копирования
};
#include "office.h"
class NCoffice: public COffice
{
private: int m_number;
public: void TO_SHOW_N();
int to_getN();
int& NUMBER();
void to_set_number(int);
NCoffice();
NCoffice(char*,int*, int, int);
void to_show(); };
41. Функции-шаблоны. Назначение, описание, использование.
Некоторые перегруженные функции имеют один и тот же код, независимо от типа параметров, например, перестановка элементов или копирование содержимого одного массива в другой. В языке С++ существует возможность вместо нескольких идентичных по операциям функций создать только одну универсальную функцию, которая называется шаблоном или шаблонной функцией.
Шаблонная функция – это функция, полностью контролирующая соответствие типов данных, которые задаются ей как параметры.
Объявление: template <class имя_типа1, …, class имя_типаN >
В угловых скобках < > указывается список формальных параметров шаблона. Имя_типа – параметр типа, который представляет собой идентификатор типа и используется для определения типа параметра в заголовке шаблонной функции, типа возвращаемого значения и типа переменных, объявляемых в теле функции.
За строкой template следует строка со стандартным объявлением функции, где в списке параметров используется как параметры типа, так и любые другие допустимые базовые или производные типы данных.
42. Пример описания и вызова функции-шаблон для суммирования элементов массива.
#include <iostream>
#include <iomanip>
using namespace std;
template <class A>
TO_SUM(A *x, int n)
{
A s=0;
for (int i=0; i<n; i++)
{
s=s+x[i];
}
cout<<setw(15)<<left<<"SUMMA of array s= "<<setw(5)<<right<<s<<endl<<endl;
}
43. Классы-шаблоны. Назначение, описание, использование.
Шаблон классов - параметризированный класс, на основе которого строят другие классы. Шаблон представляет правила конструирования каждого отдельного класса из множества допустимых этим шаблоном классов.
Шаблон классов представляет собой класс, в котором определены данные и методы, но фактический тип данных задается в качестве параметра при создании объекта класса.
Шаблоны дают возможность многократно использовать один и тот же код, который позволяет компилятору автоматизировать процесс реализации типа.
Объявление:
template <class параметр_типа1, … , class параметр_типаN>
тип_функции имя_шаблона < параметр_типа1, … , параметр_типаN >
:: имя_функции (список параметров)
Объявление объекта шаблона класса:
имя_шаблона <параметр_типа1, … , параметр_типаN> идентификатор;
чаще всего шаблоны класса используются для программирования контейнерных классов (контейнеров), которые предназначены для хранения объектов других классов.
44. Пример описания класса-шаблона.
#include <iostream>
#include <iomanip>
using namespace std;
template <typename T>
class Vector
{
private: T m_x;
T m_y;
public: T getX();
T getY();
void to_show();
void to_sat(T thex, T they);
void SUMMA();
};
Vector<int> x1;
x1.to_sat(2,3);
x1.to_show();
x1.SUMMA();