С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Подсолнух
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 96
#1

Помогите придумать несложную задачку по теме "Шаблоны классов" - C++

11.01.2011, 00:40. Просмотров 833. Ответов 9
Метки нет (Все метки)

Привет всем, я новичок в С++, и хочу сделать какую нибудь задачу по теме "шаблоны классов", придумайте пожалуйста какую нибудь не сильно трудную задачу, ну а если не получиться сделать, подскажите в чем ошибка, буду исправляться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2011, 00:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите придумать несложную задачку по теме "Шаблоны классов" (C++):

Реализовать шаблонный класс "Матрица" (шаблоны классов и функций) - C++
Написать код программы на С++ Разработать шаблонные функции и классы. класс МАТРИЦА. Для класса реализовать: конструктор с параметрами...

Помогите придумать 12 функций программы для игры в "Спички" - C++
Помогите придумать 12 функций программы для игры в "Спички". НА пример первая функция умственное развитие, вторая развитие логического...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие "зарплата" не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....

Шаблоны. Плохо понимаемые моменты из книги "Шаблоны С++. Справочник разработчика". (Вандевурд, Джосаттис) - C++
Так как изучаю эту книгу, то в некоторых местах возникают вопросы. Чтобы не плодить много тем, корни у которых одни, решил создать эту...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Описать класс "Контейнер" как объект, предназначенный для транспортировки классов "Строительных блоков" - C++
1. Опишите класс "Строительный блок", описывающий габариты и массу блока прямоугольной формы. Данные класса: Габариты, масса. Методы...

9
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
11.01.2011, 08:47 #2
Ну, я думаю, классическая задача - создай класс "массив", чтобы он мог хранить элементы произвольного типа, был динамически расширяющимся и проверял выход за пределы массива
2
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
11.01.2011, 09:43 #3
Или список. Или вообще любой контейнерный тип, они сами так на шаблонность и напрашиваются.
1
Подсолнух
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 96
11.01.2011, 17:51  [ТС] #4
Ну посмотрите, вот что на делал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
using namespace std;
 
template <class T>
class Massiv
{
    T *data;
    int size;
public:
    Massiv(int);
    ~Massiv()
    {
        delete[] data;
    }
    T& operator [](int i)
    {
        return data[i];
    }
};
template <class T>
Massiv <T>::Massiv(int n)
{
    data = new T[n];
    size = n;
}
void main()
{
    Massiv <int> X(5);
    Massiv <char> C(5);
    for (int i=0;i<5;i++)
    {
        X[i] = i;
        C[i] = 'A'+i;
        cout<<X[i]<<' '<<C[i]<<'t';
    }
}
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
11.01.2011, 17:54 #5
Реализуйте вторую перегрузку доступа по индексу - константную.
Также конструктор копии не помешал бы...
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
11.01.2011, 17:55 #6
Подсолнух, где проверка выхода за границы массива (которую нужно реализовать в операторе [])? Еще бы хорошо предусмотреть возможность динамического расширения массива.
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
11.01.2011, 18:25 #7
Ко всему вышесказанному:
1) Оператор присваивания не реализован.
2) Конструктор не объявлен как explicit.
3) Нет функции для получения размера массива.
4) функция main должна возвращать int.
0
Подсолнух
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 96
15.01.2011, 01:16  [ТС] #8
Цитата Сообщение от Nameless One Посмотреть сообщение
Подсолнух, где проверка выхода за границы массива (которую нужно реализовать в операторе [])? Еще бы хорошо предусмотреть возможность динамического расширения массива.

честно, знаний не хватает(я ж новичок), подскажи как доделать???
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
15.01.2011, 05:11 #9
Выход за границы массива: в операторе [] перед тем, как возвращать ссылку на элемент массива, можно проверить, что индекс - корректный. Т.е. индекс должен быть >= 0 и <size. В противном случае нужно выбрасывать исключение.
Динамическое расширение массива: создаешь новый массив большего размера, копируешь элементы старого, удаляешь старый массив
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
15.01.2011, 08:35 #10
+ Можно еще удаление реализовать. Итератор для более удобного доступа (но это уже не просто). Ну и остальные приятные мелочи (вроде вставки массива в уже существующий массив).
1
15.01.2011, 08:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2011, 08:35
Привет! Вот еще темы с ответами:

Реализовать связь классов "телефонная книга" и родительский класс "телефонный номер" - C++
Суть проблемы:есть дочерний класс &quot;телефонная книга&quot; и родительский класс &quot;телефонный номер&quot;. В классе &quot;телефонная книга&quot; к заданной...

Иерархия классов "список"-"очередь", вызов метода через класс интерфейс - C++
Есть небольшая иерархия классов, контейнер (список) для хранения объектов каждого класса, контейнер (очередь) с указателями на объект...

Описание классов. Классы "Шар" и "Ящик для шаров" - C++
1.Опишите класс &quot;шар&quot;, описывающий габариты и вес. Данные класса: радиус шара,вес. Методы класса: должны обеспечить минимальную...

Проблема с перегрузкой операторов "+" и "+=" для классов Point и Circle - C++
Есть класс Point (элементы данных x,y) и класс Circle (элементы данных р(типа Point),r). Их заголовочные файлы: class Point { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.