Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Самоучитель С++ - Шилдт Г.

Шилдт Г. Самоучитель С++ — Спб.: БВХ-Петербург, 2003. — 688 c.
ISBN 5-7791-0086-1
Скачать (прямая ссылка): samouchitelc2003.djvu
Предыдущая << 1 .. 176 177 178 179 180 181 < 182 > 183 184 185 186 187 188 .. 206 >> Следующая

return 0;
)
ГЛАВА 10 Повторение пройденного
1. # include <iostream> using namespace std;
ostreamfisetsci (ostreamfistream)
{
stream, setf (ios:: scientificl ios: : uppercase) ;
return stream;
)
int main ( )
{
double f = 123.23;
cout « setsci << f; cout « ' \n';
return 0;
)
2. II Копирование файла и преобразование табуляций в пробелы ttinclude <iostream>
ttinclude <fstream>
using namespace std;
int main(int argc, char *argv[])
{
if(argc!=3) {
cout « "Копирование: <ввод> <вывод>\п";
return 1;
}
ifstream in(argv[l]}; if(!in) {
cout << "Файл ввода открыть невозможно\n" ; return 1;
}
Приложение В. Ответы на вопросы и решения упражнений
ofstream out(argv[2]); if(!out) {
cout « "Файл вывода открыть невоэможно\п" ; return 1;
}
char ch; int і = 8;
while (! in. eof(}) { in.get(ch);
if(ch=='\t') for(; i>0; і --) out.put(' '); else out.put(ch); if(i==-l j I ch=='\n') і - 8;
і — f
}
in.close(); out.close() ;
return 0;
З. / / Поиск слова в файле
#include <iostream> ttinclude <fstream> ttinclude <cstring> using namespace std;
int main(int argc, char *argv[])
{
if(argc!=3) {
cout « "Поиск: <файл> <слово>\п";
return 1;
I
ifstream in(argv[l]); if(!in) {
cout « "Файл ввода открыть невозможно\n" ;
return 1;
}
char str [255] ;
int count = 0;
while (! in.eof (} ) { in » str;
if ( !strcmp(str, argv[2] ) ) count++;
614
Самоучитель
C++
cout « argv[2] « " найдено " « count; cout « " раз. \n";
in.close();
return 0;
)
4. Искомой инструкцией является следующая: out.seekp(234, ios::beg);
5. Такими функциями являются rdstate(), good(), eof(), fail() и bad().
6. Ввод/вывод C++ обеспечивает возможность работы с создаваемыми вами классами.
Упражнения
10.2
1. ttinclude <iostrearo> using namespace std;
class num { public:
int і ;
num(int x) {i = x; }
virtual void shownumO ( cout « і « F\n'; }
) ;
class outhex: public num { public:
outhex(int n) : num{n) {}
void shownumO ( cout « hex « і « ' \n1; }
class outoct: public num { public:
outoct{int n) : num(n) { }
void shownumO { cout « oct « і « 7 \n'; }
1;
int main()
{
outoct о(10) ;
outhex h(2 0);
o.shownum(} ; h. shownum (}
Приложение В. Ответы на вопросы и решения упражнений _ 615
return 0;
}
2 . # include <iostream>
using namespace std;
class dist { public:
double d;
dist (double f) {d - f; } virtual void trav_time{)
{
cout « "Время движения со скоростью 60 миль/час:”; cout « d / 60 << '\nr;
)
);
class metric: public dist { public:
metric(double f) : dist(f) {} void trav_time{)
{
cout << "Время движения со скоростью 100 км/час:*'; cout << d / 100 << Лп1;
}
);
int main ()
{
dist mph (88.0) ; metric kph (88) ;
p - &mph; p -> trav_time() ;
p = &kph; p -> trav_time();
return 0;
)
10.3
2. По определению в абстрактном классе содержится, по крайней мере, одна чистая виртуальная функция. Это означает, что в классе отсутствует тело этой функции. Таким образом, создание объекта абстрактного класса невозможно , поскольку определение класса неполно.
616.
Самоучитель C++
3. При вызове функции fnnc() относительно класса derivedl используется функция ftincO из класса base. Так происходит потому, что виртуальные функции имеют иерархическую структуру.
10.4
1. // Демонстрация возможностей виртуальных функций
#include <iostream>
#include <cstdlib> using namespace std;
class list { public:
list *head; // указатель на начало списка
list *tail; // указатель на конец списка
list *next; // указатель на следующий элемент списка
int num; // число для хранения
list () { head = tail = next = NULL; }
virtual void store (int i) = 0; virtual int retrieve () = 0;
)*
// Создание списка типа очередь class queue: public list { public:
void store (int i) ;
int retrieve () }
};
voidqueue; :store(inti)
{
list
item = new queue; if ( !item) {
cout « "Ошибка выделения памяти\пм; exit(1};
}
item -> num = i;
// Добавление элемента в конец списка
if (tail) tail -> next = item;
tail = item;
item -> next = NULL;
if(!head) head = tail;
Предыдущая << 1 .. 176 177 178 179 180 181 < 182 > 183 184 185 186 187 188 .. 206 >> Следующая