
- •Билет 1. Билет 7
- •Билет 2. Билет 8.
- •Билет 3. Билет 9. Билет 23.
- •Билет 4.Билет 10. Билет 24
- •Билет 5. Билет 11. Билет 27
- •Билет 6. Билет 12. Билет 28
- •Билет 13. Билет 19. Билет 31. Html. Структура документа, физическое и логическое форматирование, оформление абзацев и списков
- •Билет 14. Билет 20. Билет 32. Html. Рисунки и гиперссылки
- •Билет 15. Билет 25. Html. Использование и оформление таблиц
- •Билет 16. Билет 26. Html. Разбиение окна на фреймы
- •Билет 17. Html. Оформление документов с использованием css
- •I способ - Внутренние стили
- •II способ - Глобальные стили
- •III способ - Связанные или внешние стили
- •Билет 18. Html. Типы css
- •Билет 21. Билет 29.
- •Билет 22
- •Билет 30 Структуры в языке с
- •Билет 33 Библиотека qt. Создание приложений в qtCreator.
- •Билет № 34 Библиотека qt. Работа со строками.
- •Билет 35 Использование JavaScript при оформлении динамических html страниц
- •Билет 36 Использование объектной модели документа (dom) в JavaScript
- •Иерархия классов dom
- •Билет 37 Формы и их использование в JavaScript
- •Билет № 38 Объектная модель браузера и ее использование в JavaScript
Билет 21. Билет 29.
Перегрузка операторов в С++
Когда вы определяете в своей программе класс, то по существу вы определяете новый тип. А если так, C++ позволяет вам определить операции, соответствующие этому новому типу. Перегрузка оператора состоит в изменении смысла оператора (например, оператора плюс (+), который обычно в C++ используется для сложения) при использовании его с определенным классом.
Переопределяя оператор, вы указываете функцию, которую C++ вызывает каждый раз, когда класс использует перегруженный оператор. Эта функция, в свою очередь, выполняет соответствующую операцию.
Если ваша программа перегружает оператор для определенного класса, то смысл этого оператора изменяется только для указанного класса, оставшаяся часть программы будет продолжать использовать этот оператор для выполнения его стандартных операций.
Операторы, которые нельзя перегружать:
-
.
Выбор элемента
.*
Указатель на элемент
::
Разрешение области видимости
?:
Условный оператор сравнения
Перегрузка операторов — в программировании — один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются.
Перегрузка операторов может упростить наиболее общие операции класса и улучшить читаемость программы.
Оператор в С++ - это некоторое действие или функция обозначенная специальным символом. Для того что бы распространять эти действия на новые типы данных, при этом сохраняя естественный синтаксис, в С++ была введена возможность перегрузки операторов.
Рассмотрим пример перегрузки операторов ввода/ вывода классов istream и ostream для упрощения формы записи ввода и вывода данных объекта класса person через объекты-потоки cin и cout.
// main.cpp // #include "person.h" #include<iostream>
int main() { Person My1, My2("Nick",1989); std::cout << "Enter Name, Year ->"; //использование перегруженного оператора ввода std::cin >> My1; // использование перегруженного оператора вывода std::cout << My1; std::cout<<My2; return 0;}
// person.h #include <iostream>
class person { char Name[20]; int Year; public: person(void); ~person(void); person(char* N, int Y); //Перегрузка ввода через объект класса istream (cin) friend std::istream& operator>>(std::istream&, person&); //Перегрузка вывода через объект класса ostream (cout) friend std::ostream&operator<<(std::ostream&,person&); };
|
//person.cpp
#include ".\person.h" #include<string.h> //#include <iostream>
person::person(void) { } person::~person(void) { } person::person(char* N, int Y) { strcpy(Name, N); Year=Y; } std::istream&operator>>(std::istream& is, person& p) { char buf[20]; int Y; std::cout << "Name->"; is>>buf; strcpy(p.Name,buf); std::cout << "Year->"; is >> Y; p.Year = Y; return is; } std::ostream& operator<<(std::ostream& os ,person& p) { os << "Name " << p.Name << " Year " << p.Year << std::endl; return os; }
|
Задание: НТМL. Вставить в один документ несколько картинок и сделать на них гиперссылки
<HTML>
<HEAD>
<TITLE>New</TITLE>
</HEAD>
<BODY>
<p>Этолес<img src="лес.jpg"></p>
<p> А это поле <img src="поле.jpg"></p>
<a href="лес.jpg">Лес</a><BR>
<a href="поле.jpg">Поле</a><BR>
</BODY>
</HTML>
Задание: НТМL. . Вставить в 2 документа таблицы. В третьем сделать на них гиперссылки
1.htm <HTML> <HEAD> <TITLE>1</TITLE> </HEAD> <BODY> <TABLE BORDER> <TR> <TD>Ячейка 1 строки 1</TD> <TD>Ячейка 2 строки 1</TD> </TR> <TR> <TD>Ячейка 1 строки 2</TD> <TD>Ячейка 2 строки 2</TD> </TR> </TABLE> </BODY> </HTML>
|
2.htm <HTML> <HEAD> <TITLE>2</TITLE> </HEAD> <BODY> <TABLE BORDER> <TR> <TD>Ячейка 1 строки 1</TD> <TD>Ячейка 2 строки 1</TD> </TR> <TR> <TD>Ячейка 1 строки 2</TD> <TD>Ячейка 2 строки 2</TD> </TR> </TABLE> </BODY> </HTML>
|
3.htm <HTML> <HEAD> <TITLE>3</TITLE> </HEAD> <BODY> <a href="1.htm">таб1</a><BR> <a href="2.htm">таб2</a><BR> </BODY> </HTML>
|