ВУЗ:
Составители:
Рубрика:
22
Применение :
Void main ()
My m1(1,2), m2(10,20);
My m3 = 1+m1 ;
My m4 = m2+2;
Сложные выражения с объектами
Под сложным выражением понимают множество арифметических операций,
выполненных в одном операторе.
Пусть : в сл. My перегружен + - * /
Тогда можно писать следующее выражение:
My m1,m2,m3;
My obj = m1+m2*m3-5m3+6*m4-6*(m1/m3)*m2;
Такие выражения нормально работают, если операторы перегружены таким образом, что
возвращают ссылку на тип.
Для класса матриц обязательная демонстрация выражения с матрицами.
Ссылка на тип
Тип & operator @ (…)
Перегрузка потоковых операций ввода/вывода
Cin » имя_ переменной; - ввод переменной из потока cin
Cin – стандартны поток ввода (клавиатура, консоль на входе)
Cout « имя _переменной; - вывод в поток
Cout – стандартный поток вывода (монитор, консоль на выходе)
В операциях ввода/вывода участвуют в перегрузке операции побитового сдвига
влево и вправо » и «.
Перегруженный оператор ввода возвращает ссылку на поток iostream, поэтому в
1-
ом операторе можно вводить несколько переменных.
Оператор ввода определен для всех базовых типов и модификаций (unsigned,
short, long).
Процесс ввода/вывода без форматирования происходит в два этапа:
1. компилятор читает переменные и тип, т.е. тип переменной известен.
2. когда идет операция ввода/вывода вызывается нужный перегруженный оператор в
соответствии с типом переменной.
Операторы
ввода/вывода:
Хотим применить те же самые операторы « и » для объектов абстрактных классов.
Хотим: date d1, d2;
Cin » d1 » d2
Cout « d1 « “…” « d2;
Т.е. хотим применить оператор ввода/вывода вместо функции членов класса input и
output.
Для этого требуется перегрузить потоковые операции в абстрактном классе.
1.
friend
cin »
cout «
1терм-имя потока стандарт. ( в классе ivs), т.е. левым термом не может быть объект
абстрактного класса. Поэтому потоковые операции в абстрактном классе должны
иметь более одного параметра.
22 Применение : Void main () My m1(1,2), m2(10,20); My m3 = 1+m1 ; My m4 = m2+2; Сложные выражения с объектами Под сложным выражением понимают множество арифметических операций, выполненных в одном операторе. Пусть : в сл. My перегружен + - * / Тогда можно писать следующее выражение: My m1,m2,m3; My obj = m1+m2*m3-5m3+6*m4-6*(m1/m3)*m2; Такие выражения нормально работают, если операторы перегружены таким образом, что возвращают ссылку на тип. Для класса матриц обязательная демонстрация выражения с матрицами. Ссылка на тип Тип & operator @ (…) Перегрузка потоковых операций ввода/вывода Cin » имя_ переменной; - ввод переменной из потока cin Cin – стандартны поток ввода (клавиатура, консоль на входе) Cout « имя _переменной; - вывод в поток Cout – стандартный поток вывода (монитор, консоль на выходе) В операциях ввода/вывода участвуют в перегрузке операции побитового сдвига влево и вправо » и «. Перегруженный оператор ввода возвращает ссылку на поток iostream, поэтому в 1-ом операторе можно вводить несколько переменных. Оператор ввода определен для всех базовых типов и модификаций (unsigned, short, long). Процесс ввода/вывода без форматирования происходит в два этапа: 1. компилятор читает переменные и тип, т.е. тип переменной известен. 2. когда идет операция ввода/вывода вызывается нужный перегруженный оператор в соответствии с типом переменной. Операторы ввода/вывода: Хотим применить те же самые операторы « и » для объектов абстрактных классов. Хотим: date d1, d2; Cin » d1 » d2 Cout « d1 « “…” « d2; Т.е. хотим применить оператор ввода/вывода вместо функции членов класса input и output. Для этого требуется перегрузить потоковые операции в абстрактном классе. 1. friend cin » cout « 1терм-имя потока стандарт. ( в классе ivs), т.е. левым термом не может быть объект абстрактного класса. Поэтому потоковые операции в абстрактном классе должны иметь более одного параметра.
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »