Форум программистов, компьютерный форум CyberForum.ru

Лабораторная работа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Я пробую почему-то не получается http://www.cyberforum.ru/cpp-beginners/thread230780.html
1. Напишите программу, которая запрашивает координаты точки (x, y) и определяет, попадает ли точка в заштрихованную область на рисунке 2. На входе имеются вещественные числа a, b, c, d, e, f, h. Напишите программу для вычисления значения выражения В программе необходимо предусмотреть проверку ситуации, когда значение выражения не определено. При запуске программы на экране должна появиться...
C++ Возможно ли создать двумерный динамический массив? существует ли возможность создать двумерный динамический массив, к примеру 2х5 ? http://www.cyberforum.ru/cpp-beginners/thread230775.html
C++ Фунции на С.
Здравствуйте! Помогите пожалуйста написать программу на Си.Написать и протестировать функцию, которая по заданному натуральному числу определяет количество цифр и сумму цифр на нечетных местах.
Обобщенный класс C++
Есть работающая прога над векторами с ипользованием класса. Нужно немного код изменить. Сделать класс обобщенным, шаблон в общем. template <class T, ... что то такое в общем. #include "stdafx.h" #include <iostream> // подключаем стандартные библиотеки + библиотеку мат. функций. #include <windows.h> #include <math.h> using namespace std;
C++ определение кол-ва участков м массиве http://www.cyberforum.ru/cpp-beginners/thread230741.html
Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают1|убывают2.
C++ Cторон многоугольника Многоугольник задан координатами своих вершин.Определить принадлежит ли заданная точка стороне этого многоугольника. Помогите пожалуйста!не соображу что за условие для точки( Добавлено через 2 часа 24 минуты да и как вобще можно задать эти отрезки! подробнее

Показать сообщение отдельно
dreeqa
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 11
18.01.2011, 18:25     Лабораторная работа
Есть условие лабораторной работы...ПОМОГИТЕ ПОЖАЛУЙСТА!!!!завтра сдавать,а я не знаю как делать.

ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ
Краткие теоретические сведения.
Шаблон функции.
Шаблон функции (иначе параметризированная функция) определяет общий набор операций (алгоритм), которые будут применяться к данным различных типов. При этом тип данных, над которыми функция должна выполнять операции, передается ей в виде параметра на стадии компиляции.
В С++ параметризированная функция создается с помощью ключевого слова template. Формат шаблона функции:
template <class тип_данных> тип_возвр_значения
имя_функции(список_параметров){тело_функции}
Основные свойства параметров шаблона функции.
 Имена параметров шаблона должны быть уникальными во всем определении шаблона.
 Список параметров шаблона не может быть пустым.
 В списке параметров шаблона может быть несколько параметров, и каж-дому из них должно предшествовать ключевое слово class.
 Имя параметра шаблона имеет все права имени типа в определенной шаблоном функции.
 Определенная с помощью шаблона функция может иметь любое количество непараметризированных формальных параметров. Может быть непараметризированно и возвращаемое функцией значение.
 В списке параметров прототипа шаблона имена параметров не обязаны совпадать с именами тех же параметров в определении шаблона.
 При конкретизации параметризованной функции необходимо, чтобы при вызове функции типы фактических параметров, соответствующие одинаково параметризованным формальным параметрам, были оди-наковы.

Шаблон класса.
Шаблон класса (иначе параметризованный класс) используется для построения родового класса. Создавая родовой класс, вы создаете целое семейство родственных классов, которые можно применять к любому типу данных. Таким образом, тип данных, которым оперирует класс, указывается в качестве параметра при создании объекта, принадлежащего к этому классу. Подобно тому, как класс определяет правила построения и формат отдельных объектов, шаблон класса определяет способ построения отдельных классов. В определении класса, входящего в шаблон, имя класса является не именем отдельного класса, а параметризованным именем семейства классов.
Общая форма объявления параметризованного класса:
template <class тип_данных> class имя_класса { . . . };

Основные свойства шаблонов классов.
 Компонентные функции параметризованного класса автоматически являются параметризованными. Их не обязательно объявлять как параметризованные с помощью template.
 Дружественные функции, которые описываются в параметризованном классе, не являются автоматически параметризованными функциями, т.е. по умолчанию такие функции являются дружественными для всех классов, которые организуются по данному шаблону.
 Если friend-функция содержит в своем описании параметр типа параметризованного класса, то для каждого созданного по данному шаблону класса имеется собственная friend-функция.
 В рамках параметризованного класса нельзя определить friend-шаблоны (дружественные параметризованные классы).
 С одной стороны, шаблоны могут быть производными (наследоваться) как от шаблонов, так и от обычных классов, с другой стороны, они могут использоваться в качестве базовых для других шаблонов или классов.
 Шаблоны функций, которые являются членами классов, нельзя описывать как virtual.
 Локальные классы не могут содержать шаблоны в качестве своих элементов.

Компонентные функции параметризованных классов.
Реализация компонентной функции шаблона класса, которая находится вне определения шаблона класса, должна включать дополнительно следующие два элемента:
 Определение должно начинаться с ключевого слова template, за которым следует такой же список_параметров_типов в угловых скобках, какой указан в определении шаблона класса.
 За именем_класса, предшествующим операции разрешения области видимости (:, должен следовать список_имен_параметров шаблона.
template<список_типов>тип_возвр_значения имя_класса<список_имен_ параметров> : : имя_функции(список_параметров){ . . . }

Порядок выполнения работы.
1. Создать шаблон заданного класса. Определить конструкторы, деструктор, перегруженную операцию присваивания (“=”) и операции, заданные в варианте задания.
2. Написать программу тестирования, в которой проверяется использование шаблона для стандартных типов данных.
3. Выполнить тестирование.
4. Определить пользовательский класс, который будет использоваться в качестве параметра шаблона. Определить в классе необходимые функции и перегруженные операции.
5. Написать программу тестирования, в которой проверяется использование шаблона для пользовательского типа.
6. Выполнить тестирование.

Методические указания.
1. Класс АТД реализовать как динамический массив. Для этого определение класса должно иметь следующие поля:
− указатель на начало массива;
− максимальный размер массива;
− текущий размер массива.
2. Для вода и вывода определить в классе функции input и print.
3. Чтобы у вас не возникало проблем, аккуратно работайте с константными объектами. Например:
 конструктор копирования следует определить так:
MyTmp (const MyTmp& ob);
 операцию присваивания перегрузить так:
MyTmp& operator = (const MyTmp& ob);
4. Для шаблонов множеств, списков, стеков и очередей в качестве стандарт-ных типов использовать символьные, целые и вещественные типы. Для пользова-тельского типа взять класс из лабораторной работы № 1.
5. Для шаблонов массивов в качестве стандартных типов использовать целые и вещественные типы. Для пользовательского типа взять класс “комплексное число” complex.
class complex
{
int re; // действительная часть
int im; // мнимая часть
public:
// необходимые функции и перегруженные операции
};
6. Реализацию шаблона следует разместить вместе с определением в заголовочном файле.
7. Тестирование должно быть выполнено для всех типов данных и для всех операций.
ВОТ само задание,что нужно сделать

17. Класс − стек stack. Дополнительно перегрузить следующие операции:
+ − добавить элемент в стек;
-- − извлечь элемент из стека;
bool() − проверка, пустой ли стек.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru