Каким образом осуществляется объявление переменной типа string? Примеры
Лабораторная работа №6-7 Использование классов в С++. Шаблонные классы (Standard Template Library, STL). Цели работы. Знать: · принципы инкапсуляции и скрытия данных при разработке ПО; · идеи абстракции данных и абстрактных типов данных; · как создаются, используются и разрушаются объекты классов; · как переопределять операции для работы с новыми типами данных; · как перегружать операции; · как перегружать шаблонные функции; · часть библиотеки языка С++, в которую входят шаблонные классы. Уметь: · создавать классы; · управлять доступом к элементам-данным и функциям-элементам; · создавать классы, которые используют перегруженные операции; · использовать шаблоны функций /перегруженных функций; · различать шаблоны функций и шаблонные функции; · использовать шаблоны классов для создания группы связанных типов классов; · различать шаблоны класса и шаблонные классы. · создавать и работать с объектами шаблонных классов (STL). Варианты заданий. Таблица 1
Бонусные баллы. Последовательность выполнения лабораторной работы. 1. Работа с шаблонным классом string стандартной библиотеки С++: a. знакомство с классом: см. Приложение №1; b. составить таблицу: операторы, функции (левый столбец), описание операторов, описание специализированных функций (правый столбец), см. https://docs.microsoft.com/ru-ru/cpp/standard-library/string?view=vs-2019. 2. Работа с классом последовательностей (последовательным контейнером или контейнером-адаптером STL) (далее по тексту «класс»): a. знакомство с классом (согласно номеру варианта из табл. 1) см. https://docs.microsoft.com/ru-ru/cpp/standard-library/stl-containers?view=vs-2017#sequence_containers; b. составить таблицу: операторы, функции класса (левый столбец), описание операторов, описание функций (правый столбец), выделить функции, которые являются уникальными для данного класса; c. прописать требования, которым должны соответствовать элементы класса; d. определить, как осуществляется доступ к элементам класса. 3. Создание своего класса на основе стандартных классов (string и класса последовательностей): a. Элемент-данные класса класс_последовательностей < string > имя_элемента; Пример: class Mail_Contact { priority_queue <string> all_e_mail; // перечень Е- mail public: // методы класса }; b. Функции-элементы класса: • конструктор, конструктор по умолчанию, конструктор копирования; • деструктор; • оператор ввода; • оператор вывода; • добавление в последовательность; • удаление из последовательности;
• запись последовательности в файл (бонусные баллы); •чтение из файла (бонусные баллы). 4. Продемонстрировать работу всех методов класса создав программу-драйвер. Отделить реализацию от спецификации класса! Содержание отчета.
Примеры.
Теоретические положения.
Вопросы и упражнения. Литература: 1. Бьярн Страуструп - Язык программирования C++. Специальное издание, 2011. 2. Герберт Шилдт - C++. Руководство для начинающих, 2005. 3. Г. Шилдт - Самоучитель C++ . 4. Майкл Дж. Янг - Visual C++ 6. Том 1, 2. 5. Роберт Седжвик - Фундаментальные алгоритмы на C++. Части 1-4. Анализ. Структуры данных. Сортировка. Поиск. 6. Джесс Либерти - Освой самостоятельно C++ за 21 день. 7. Х. М. Дейтел, П. Дж. Дейтел - Как программировать на C++. 8. Стенли Б. Липпман, Жози Лажойе - Язык программирования C++. Вводный курс. 9. Стивен Прата - Язык программирования C++. Лекции и упражнения. 10. Р. Лафоре - Объектно-ориентированное программирование в C++.
Приложение 1 Знакомство с классом string[1] 1. Какое назначение класса string в программах на C++? 2. Какие модули (библиотеки) нужно подключить, чтобы использовать возможности класса string в MS Visual Studio C++? 3. Каким образом осуществляется объявление переменной типа string? Примеры 4. Какие преимущества и недостатки дает использование класса string в сравнении с типом char*? 5. Какие операторы можно использовать с объектами класса string? 6. Содержит ли класс string конструкторы? 7. Примеры инициализации с помощью конструкторов 8. Присваивание строк. Функция assign(). Примеры 9. Объединение строк. Функция append(). Пример 10. Вставка символов в строке. Функция insert(). Пример 11. Замена символов в строке. Функция replace(). Пример 12. Удаление заданного количества символов из строки. Функция erase(). Пример 13. Поиск символа в строке. Функции find() и rfind(). Примеры 14. Сравнение частей строк. Функция compare(). Пример 15. Получение строки с символом конца строки ‘\0’ (char *). Функция c_str(). Пример 16. Как определить длину строки типа string? Функция length() 1. Какое назначение класса string в программах на C++? Класс string предназначен для работы со строками типа char*, которые представляют собой строку с завершающим нулем. Класс string был введенн как альтернативный вариант для работы со строками типа char*. Строки, которые завершаются символом ‘\0’ еще называются C-строками. Поскольку, string есть классом, то можно объявлять объекты этого класса. 2. Какие модули (библиотеки) нужно подключить, чтобы использовать возможности класса string в MS Visual Studio C++? Чтобы использовать возможности класса string в MS Visual Studio (C++), нужно подключить библиотеку <string> и пространство имен std. #include <string> using namespace std; Каким образом осуществляется объявление переменной типа string? Примеры Объявление переменной типа string осуществляется точно так же как и обычной переменной. Возможный вариант объявления с одновременной инициализацией. // тип string string s1; // переменная с именем s1 типа string string s2 = "This is a string variable"; // объявление с инициализацией // использование переменной типа string с оператором присваивания s1 = s2; // s1 = "This is a string variable" s2 = "New text"; 4. Какие преимущества и недостатки дает использование класса string в сравнении с типом char*? Создание нового типа string было обусловлено недостатками работы с строками символов, который демонстрировал тип char*. В сравнении с типом char* тип string имеет следующие основные преимущества: • возможность обработки строк стандартными операторами C++ (=, +, = =, <> и т.п.). Как известно, при использовании типа char* даже наиболее простые операции со строками выглядели сложно и требовали написания чрезмерного программного кода; • обеспечение лучшей надежности (безопасности) программного кода. Например, при копировании строк, тип string обеспечивает соответствующие действия, которые могут возникнуть в случае, если строка-источник имеет больший размер чем строка-приемник; • обеспечение строки, как самостоятельного типа данных. Объявление типа string как строки есть единым для всех переменных в программе, которая обеспечивает непротиворечивость данных. Основным недостатком типа string в сравнении с типом char*, есть замедленная скорость обработки данных. Это связано с тем, что тип string – это, фактически, контейнерный класс. А работа с классом требует дополнительной реализации программного кода, который, в свою очередь занимает лишнее время.
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (188)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |