Программирование >>  Расширенная версия языка c++ 

1 ... 211 212 213 [ 214 ] 215 216 217 ... 227


648 Самоучитель С++

13.5

1. Да. . ,

2. Да, поскольку в C++ определено автоматическое преобразование из типа int в тип double.

3. Одна из проблем неявного преобразования конструкторов состоит в возможности просто забыть, что такое преобразование имело место. Например, неявное преобразование в инструкции присваивания очень напоминает перегруженный оператор присваивания, хотя их действия не обязательно аналогичны. Когда вы создаете классы, предназначенные для широкого использования, чтобы не вводить в заблуждение потенциальных пользователей ваших классов, было бы правильным отказаться от неявного преобразования конструкторов.

13.7 . -

1. /* В этой версии ограммы на экран выводится число стволов, записанных в буфер

*/ -л

tinclude <iostreain>

tinclude <strstream>

using namespace

int mainO . . , ..

char buf [255] ; :,.

ostrstream ostr (buf, sizeof buf) ; -

ost ввод/вывод через массивы работает с потокамиХп ; ost точно так же, как обычн1й ввод/бьшод\п 103; ostr 123.23 \п;

можно также использовать маниляторы ostr hex 100 ;

или флаги формата

ostr.setf(ios:iscientific);

ost< de< 123.23; ;,. , ,

ostr ends; гарантия

что буфер завершится нулем вывод на экран содержимого буфера

buf;

cout

return 0;



Приложение

В. Ответы

вопросы

решения упражнений

2. /* Массивы в качестве объектов ввода/вывода при копировании содержого одного массива в другой

ttinclude <iostreain> ttinclude <strstreaiTi>

namespace

.ri:

cha uffl = Это проверка ввода/вывода C++, основанного на использовании символьных массивов ;

char oucbui [255] ;

main

istrstream istr(inbuf); . г.

ostrstream ostr (outbuf, sizeof outbuf};

char ch;

istr.get(ch);

ostr. put {\0 ); нулевой ошвол завершения

cou< Ввод: inbuf \n;

cout Вывод: outbuf \n;

return 0;

3. Преобразование строки в число с плавающей точкой .и. ttinclude <iostream> i

ttinclude <strstream> у и- - г *г

using namespace std;

float f;

cha S [ ] = 1234.564 ; вещественное в виде строки istrstream

Простой способ преобразования строки в ее представление

istr f;

cou << Преобразованная формам << f << \п;

return



Самоучитель С++

Проверка усвоения материала главы 13

1. В отличие от обычных переменных-членов, для которых характерно то, что в каждом объекте класса имеется их копия, у статической переменной-члена существует только одна копия, которую все объекты класса используют совместно.

2. Для использования массивов в качестве объектов ввода/вывода в программу необходимо включить заголовок

3. Нет.

4. extern С int counter О;

5. Функция преобразования просто превращает объект в значение, совместимое с другим типом данных. Как правило, этим другим типом данных является встроенный тип данных С++.

6. Ключевое слово explicit применяется только к конструкторам. Оно предотвращает неявное преобразование конструкторов.

7. Постоянная функция-член не может модифицировать объект, который ее вызывает.

8. Пространства ен, объявляемое с помощью ключевого слова namespace, предназначено для локализации области видимости имен.

9. Ключевое слов stable дает возможность постоянной функции - члену класса изменять данные, являющиеся членами этого класса.

Проверка усвоения материала в целом ~

1. Да. В ситуациях, в которых неявное преобразование выполняет то же действие, которое в отношении типа параметра конструктора было бы выполнено перегруженным оператором присваивания, перегружать оператор присваивания не нужно.

2. Да.

3. Новые библиотеки можно размещать в собственных пространствах имен, предотвращая тем самым конфликты имен с кодами других программ. Эта полезная возможность оказывается столь же полезной и в отношении старых кодов, которые предполагается использовать с новыми библиотеками.

ГЛАВА 14

Повторение пройденного

Пространства имен были добавлены в C++ для локализации имен идентификаторов с целью предотвращения конфликтов имен. Проблема конфлик-



1 ... 211 212 213 [ 214 ] 215 216 217 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика