- •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 позиций, с прижатием соответственно влево и вправо).
50. 51.Синтаксис и использование команды try, catch. Варианты использования catch. Генерация исключений командой throw.
try
{
…
throw[]
}
catch()
try {} – тот участок программы, который при нормальном выполнении catch пропускается и программы продолжается. После try следует 1-н или несколько секций catch. Все они относятся к try если в какой-либо точке try обнаружит исключительную ситуацию. В этом случае возбуждается исключение с аргументом соответствующего типа – последовательно просматривается catch, выполняется действие, прописанное в catch, программа выполняется далее. Последним ставится catch(…) – она выполняется, если ни один из catch не подходит. Как только исключение возбуждается, то действие try прекращается.
Объявление:
throw [аргумент];
в этой инструкции аргумент означает сгенерированное значение. Выполнение это инструкции должно происходить внутри блока try, либо в функции, вызванной из блока try. В случае генерации исключения, которому не соответствует ни одна инструкция catch, может произойти аварийное завершение программы. При возникновении такого необратимого исключения вызывается функция terminate(), которая по умолчанию вызывает функцию abort(), приводящую к завершению выполнения программы.
try {
….
throw 10;
…
throw “text”;
…
throw 'a’;
…
throw;
}
catch(int) {…}
catch(chat*) {…}
catch(char) {…}
catch(…) {…}
52. Варианты генерации и обработки исключений.
main() {
int x1, x2;
double y;
try {
cout<<"Enter two integers"<<endl<<"x1=";
cin>>x1;
cout<<"x2=";
cin>>x2;
if (x2==0)
throw x2;
}
catch (int)
{
char s;
cout<<"\nERROR, bad operation"<<endl;
cout<<"Do you want to cantinue operation?(Y,N)";
cin>>s;
cout<<endl;
if (s=='y')
{
cout<<endl<<"Enter x2= ";
cin>>x2;
}
else
return 1;
};
y=x1/x2;
cout<<"\n"<<"Result y= "<<y<<endl;
return 0;}
54. Библиотека ввода-вывода Standard C++. Иерархия классов.
При подключении заголовочного файла iostream.h автоматически создаются 4 стандартных потока:
сin – стандартный поток ввода данных.
сout – стандартный поток вывода данных.
сerr – небуферизованный поток для стандартного вывода сообщений об ошибках.
clog – буферизованный поток для стандартного вывода сообщений об ошибках.
Подключение этих потоков через <iostream>, конструктивно ввод/вывод базируется на 2-ух связанных но разных иерархиях класса. они производятся от базового класса, который является шаблоном. basic.ios
Typedef basic_ios<char> ios;
Typedef basic_istream<char, …> istream;
ios
Istream iostrim ostream
Ifstream fstream ofstream
istream - ввод
iostrim – ввод/вывод
ostream - вывод
ifstream – ввод из файлов
fstream – для обмена данных в двух направлениях
ofstream – вывод в файл
55. Библиотека Standard C++: класс istream.
Методы:
Перегружены операторы >> (извлечение из потока) для всех встроенных типов. Причем ввод может управляться и форматироваться.
int get() – посимвольный ввод (эти методы будут возвращать basic_istream)
перегружена basic_istream get( [строка Е*], [кол-во символов int])
basic_istream read(E*, int)
здесь же описаны методы для произвольного и непроизвольного позиционирования SEEK() и TELL()
56. Библиотека Standard C++: класс ostream.
Методы:
Перегружены операторы << для всех встроенных типов. Причем вывод может управляться и форматироваться.
int put() – посимвольный вывод (эти методы будут возвращать basic_istream)
basic_istream write(E*, int)
57. Методы форматируемого вывода библиотеки Standard C++.
1)использование флагов (хранятся в cin )
cout.flags(ios::scientific|ios::hex); //задание новых флагов
сout<<’\n’<<1.2<<”; (dec) 110 = (hex) ”<<110;
cout.flags(oldfmtflags); //восстановление флагов
der – 10-ая система
oct – 8-ая система
fixed – представление числа с фиксированной точкой
left – выравнивание
2) использование манипуляторов (iomanip.h) – специальные функции, позволяющие изменить состояние потока и использующие совместно с операциями извлечения и вставки в одном операторе ввода и вывода данных. Отличие манипулятора от обычных функций в том, что их имена можно использовать в качестве первого операнда при выполнении форматированного обмена с помощью операций << и >>
Могут размещаться внутри команд ввода/вывода. Вызываются напрямую.
der – 10-ая система
oct – 8-ая система
fixed – представление числа с фиксированной точкой
left, right – выравнивание
setw() – задает поле вывода
endl – признак конца строки
пример:
cout<<setw(20)<<left<<s;
cout<<setw(10)<<right<<kol<<endl;
3)использование функций
cout.wight(10);
58. Методы вывода библиотеки Standard C++
Методы:
1)Перегружены операторы >> (извлечение из потока) для всех встроенных типов. Причем ввод может управляться и форматироваться.
2)int get() – посимвольный ввод (эти методы будут возвращать basic_istream)
перегружена basic_istream get( [строка Е*], [кол-во символов int])
3)basic_istream read(E*, int)
59. Методы ввода библиотеки Standard C++.
Методы:
Перегружены операторы << для всех встроенных типов. Причем вывод может управляться и форматироваться.
int put() – посимвольный вывод (эти методы будут возвращать basic_istream)
basic_istream write(E*, int)
60. Использование флагов библиотеки ввода-вывода Standard C++.
1)использование флагов (хранятся в cin )
cout.flags(ios::scientific|ios::hex); //задание новых флагов
сout<<’\n’<<1.2<<”; (dec) 110 = (hex) ”<<110;
cout.flags(oldfmtflags); //восстановление флагов
der – 10-ая система
oct – 8-ая система
fixed – представление числа с фиксированной точкой
left – выравнивание
61. Использование манипуляторов библиотеки ввода-вывода Standard C++.
использование манипуляторов (iomanip.h) – специальные функции, позволяющие изменить состояние потока и использующие совместно с операциями извлечения и вставки в одном операторе ввода и вывода данных. Отличие манипулятора от обычных функций в том, что их имена можно использовать в качестве первого операнда при выполнении форматированного обмена с помощью операций << и >>
Могут размещаться внутри команд ввода/вывода. Вызываются напрямую.
der – 10-ая система
oct – 8-ая система
fixed – представление числа с фиксированной точкой
left, right – выравнивание
setw() – задает поле вывода
endl – признак конца строки
пример:
cout<<setw(20)<<left<<s;
cout<<setw(10)<<right<<kol<<endl;
62. Общая схема файлового ввода-вывода средствами библиотека Standard C++.
<fstream>
Содержит методы:
open([“строка”], [“режим”])
close()
Обеспечивает работу со стандартными потоками в режиме форматирования и без него.
Обеспечивает работу с файлами.
Обеспечивает работу со строковыми потоками.
ofstream Out;
Out.open(k); //нужно контролировать исход действия
Режимы: in, out, text, binary
app – добавление в конец
ate - открытие файла, указатель указывает на его конец
контроль конца файла ( !In.end() ) //не конец
63. Средства произвольного позиционирования библиотеки Standard C++.
SEEK( long OFFSET, int whence)
OFFSET – смещение байта, значение которого может быть положительным или отрицательным
whence – указывает откуда считывать значение:
SEEK_CUR – смещение относительно текущей позиции
SEEK_END – смещение относительно конца файла
SEEK_SET – смещение относительно начала файла