В22 Часть IV. Новые возможности C++
istr » TempFloat;
expense. SetExpenseftmount(TempFloat);
return istr;
}
Как видите, кроме организации доступа к своим данным-членам, эти классы почти ни на что не способны. Если вы не знакомы со строковым клас-;ом ANSI, то вам стоило бы вернуться к главе 21 "Понятие строк в ANSI С л ANSI C++" для более детального его изучения.
Эти два класса работают с тремя отдельными программами. Как уже гово-эилось, ExpSumI — это версия приложения, использующая традиционную обработку ошибок, a ExpSum2 — версия, основанная на обработке исключительных ситуаций C++. Третья программа, ExpMaker, является утилитой, тредназначенной в первую очередь для создания файлов с информацией о )асходах. Это не очень содержательная программа, но, очевидно, необходимая. Так как ExpMaker реально не затрагивает обсуждаемые в этой главе 'емы, то мы не станем анализировать аспекты разработки этой программы;
)днако для полноты картины ее следует здесь привести (листинг 22.29). В юнце концов без программы ExpMaker программам ExpSum нечего было бы >брабатывать.
/ Необходимые заголовки include <fstream.h> include <iomanip-h> include <einployee. h> include <expense.h>
oid GetNewExpenseItem(of streams outfile, const unsigned itemnum)
Expense NewExpense;
float ExpenseAmount;
char TempBuffer[256], ChompNewline;
// Диалог с пользователем cout « "\nExpense #" « (itemnum+1) « "\n";
// Ввод основных данных cout « "Expense date : ";
cin.get(TempBuffer, 256);
cin.get(ChompNewline) ;
NewExpense.SetDate(TempBuffer);
cout « "Description : ";
cin.get (TenipBuffer, 256);
cin.get(ChompNewline) ;
NewExpense. SetDescription (TempBuffer) ;