×
Traktatov.net » Язык программирования C++. Пятое издание » Читать онлайн
Страница 19 из 714 Настройки

), чтобы присвоить один объект класса >Sales_item другому.

• Использовать оператор суммы (>+), чтобы сложить два объекта класса >Sales_item. ISBN этих двух объектов должен совпадать. Результатом будет новый объект >Sales_item с тем же ISBN, а количество проданных экземпляров и суммарный доход будут суммой соответствующих значений его операндов.

• Использовать составной оператор присвоения (>+=), чтобы добавить один объект класса >Sales_item к другому.

Ключевая концепция. Определение поведения класса

Читая эти программы, очень важно иметь в виду, что все действия, которые могут быть осуществлены с объектами класса >Sales_item, определяет его автор. Таким образом, класс >Sales_item определяет то, что происходит при создании объекта класса >Sales_item, а также то, что происходит при его присвоении, сложении или выполнении операторов ввода и вывода.

Автор класса вообще определяет все операции, применимые к объектам типа класса. На настоящий момент с объектами класса >Sales_item можно выполнять только те операции, которые перечислены в этом разделе.

Чтение и запись объектов класса >Sales_item

Теперь, когда известны операции, которые можно осуществлять, используя объекты класса >Sales_item, можно написать несколько простых программ, использующих его. Программа, приведенная ниже, читает данные со стандартного устройства ввода в объект >Sales_item, а затем отображает его на стандартном устройстве вывода.

>#include

>#include "Sales_item.h"

>int main()

>{

> Sales_item book;

> // прочитать ISBN, количество проданных экземпляров и цену

> std::cin >> book;

> // вывести ISBN, количество проданных экземпляров,

> // общую сумму и среднюю цену

> std::cout << book << std::endl;

> return 0;

>}

Если ввести значения >0-201-70353-X 4 24.99, то будет получен результат >0-201-70353-X 4 99.96 24.99.

Во вводе было указано, что продано четыре экземпляра книги по 24,99 доллара каждый, а вывод свидетельствует, что всего продано четыре экземпляра, общий доход составлял 99,96 доллара, а средняя цена на книгу получилась 24,99 доллара.

Код программы начинается двумя директивами >#include, одна из которых имеет новую форму. Заголовки стандартной библиотеки заключают в угловые скобки (><>), а те, которые не являются частью библиотеки, — в двойные кавычки (>"").

В функции >main() определяется объект >book, используемый для хранения данных, читаемых со стандартного устройства ввода. Следующий оператор осуществляет чтение в этот объект, а третий оператор выводит его на стандартное устройство вывода, сопровождая манипулятором >endl.

Суммирование объектов класса >Sales_item

Немного интересней пример суммирования двух объектов класса >Sales_item.

>#include

>#include "Sales_item.h"

>int main() {

> Sales_item item1, item2;

> std::cin >> item1 >> item2;              // прочитать две транзакции

> std::cout << item1 + item2 << std::endl; // отобразить их сумму

> return 0;

>}

Если ввести следующие данные:

>0-201-78345-X 3 20.00

>0-201-78345-X 2 25.00

то вывод будет таким:

>0-201-78345-X 5 110 22

Программа начинается с включения заголовков >Sales_item и >iostream