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

1 ... 209 210 211 [ 212 ] 213 214 215 ... 227


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

5. Пропущено слово производного . .

6. Нет.

Упражнения

13,1

1. отрамма превращения пробелов в вертикальные линии беэ использования инструкции using namespace std

ttinclude <iostreara> . - .-.. .- ..

#include <fstream>

in m(int argc, char *argv[]) .

if(argc!=3) I

std;:cout Преобразование <файл ввода> <файл вывояа>\п ;

return 1;

открытие файла для ввода создание файла для вывода

if (! fout) I . .

std:-.cout Фа открыть невозможноХп ;

return 1;

if(!fin) I .....

std:;cout Файл открыть невозможноХп ; 1r<i

return 1;

J у :.vv -i- V .. . ;..iT,H;-,l;.

char ch;

не пропускать пробелы

while(!fin.eof0) {

fi ch; . . . .. .1 . - ui. - I.s -III ,J

Ы= ) ch = ; I,! - i . Ът >, u.f.

if (Ifin.eofO ) fout ch; ,J..-:i. -

) .... ., .

fin. close 0; fout.closeO;

return



Приложение В. Ответы на вопросы и решения упражнений 643

2. Безымянное пространство имен ограничивает область видимости идентификаторов тем файлом, в котором они объявлены.

3. Представленная ниже форма инструкции using вводит в текущее пространство имен только указанный в инструкции член:

using имяпростраяствл:.член;

Следующая форма инструкции using делает видимым все пространство имен: using namespace iM npoci!paHcvi=,a;

4. Поскольку вся стандартная библиотека C++, включая потоки cin и cout, объявлена в пространстве имен std, для совместимости большинство программ нужно вводить в пространство имен std. Это дает возможность использовать в программах имена стандартной библиотеки C++ непосредственно, без уточнения, к какому пространству имен они принадлежат. Для большинства программ альтернативой была бы необходимость задания всех ссылок на имена стандартной библиотеки с инструкцией std::. Другой альтернативой являются инструкции using только для потоков, т. е. using std::cin и using std::cout.

5. Размещая код библиотеки в собственном пространстве имен, вы снижаете вероятность возникновения конфликтов имен.

13.2

1. Преобразование строки в целое ttinclude <iostreaitL> ttinclude <cstring> using namespace std;

class strtype { -

char str[80]; . , , ,.

int len; ,

public:

strtype(char *s) { strcpy(str s) ; len n(s); }

operator cha *() { return str; } operator t() { return len; }

int main ()

strtype ункции преобразования весьма удобны ); char *р; int 1;

1 = s; преобразование строки s в целое - длину строки

р = s; преобразование строки s - . .



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

в char * атель на строку

cout Строка: \п ;

cout р длину 1

return 0;

символов. \п ;

2. ttinclude <lo3tream> -

using namespace std; . .

int p(int int

class ( int base;

int exp; . . .

public:

pwr (int b, int e) I base = Ъ; exp = e; } operator into f return p(base, exp); }

Возвращает основание base в степени exp int p(int base, int exp)

exp; temp = temp * base;

return temp;

pw (2, 3) , o2(3, 3) ;

int result;

result = ol;

cout result \n;

result o2;

cout result <-<- \n;

объекты можно указывать непосредственно в инструкции cout, как это сделано здесь cout ol + 100

return 0;

13.3

1. Прер разделения ресурса с трассировкой работы ttinclude <iostream>



1 ... 209 210 211 [ 212 ] 213 214 215 ... 227

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