|
Программирование >> Расширенная версия языка c++
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>
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |